3 Star 0 Fork 0

牟俊芳/shujikuduan

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
graph.cpp 2.44 KB
一键复制 编辑 原始数据 按行查看 历史
牟俊芳 提交于 2024-08-28 07:43 . 1
#include "graph.h"
#include "mainshow.h"
#include "ui_graph.h"
#include <QVBoxLayout>
Graph::Graph(QWidget *parent) :
QWidget(parent),
ui(new Ui::Graph),
chart(new QChart()),
series(new QLineSeries())
{
ui->setupUi(this);
// 设置图表
setupChart();
// 连接按钮点击事件
connect(ui->generateButton, &QPushButton::clicked, this, &Graph::on_generateButton_clicked);
// 连接到数据库
db = QSqlDatabase::addDatabase("QSQLITE"); // 使用SQLite数据库
db.setDatabaseName("test.db"); // 替换为你的数据库文件路径
if (!db.open()) {
qDebug() << "数据库打开失败:" << db.lastError().text();
return;
}
}
Graph::~Graph()
{
db.close();
delete ui;
}
void Graph::setupChart()
{
chart->setTitle("就诊人数走势");
// 设置初始的空系列
chart->addSeries(series);
chart->createDefaultAxes();
// 使用QDateTimeAxis来显示日期
QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setFormat("MM/dd/yy");
axisX->setTitleText("日期");
chart->setAxisX(axisX, series);
QValueAxis *axisY = new QValueAxis;
axisY->setTitleText("预约总数");
chart->setAxisY(axisY, series);
ui->chartView->setChart(chart);
ui->chartView->setRenderHint(QPainter::Antialiasing);
}
void Graph::fetchDataFromDatabase()
{
QSqlQuery query(db);
query.prepare("SELECT DueDate, COUNT(*) as Count FROM DIAGNOSIS GROUP BY DueDate ORDER BY DueDate");
if (!query.exec()) {
qDebug() << "查询失败:" << query.lastError().text();
return;
}
series->clear();
while (query.next()) {
QString dateString = query.value(0).toString();
int count = query.value(1).toInt();
// 使用MM/dd/yy格式解析日期
QDateTime dateTime = QDateTime::fromString(dateString, "MM/dd/yy");
if (dateTime.isValid()) {
// 将QDateTime转换为时间戳
qreal timestamp = dateTime.toMSecsSinceEpoch(); // 可以使用毫秒数
series->append(QPointF(timestamp, count)); // 使用QPointF
} else {
qDebug() << "无效的日期:" << dateString;
}
}
}
void Graph::on_pushButton_2_clicked()
{
this->close();
MainShow *ms = new MainShow;
ms->setAttribute(Qt::WA_DeleteOnClose);
ms->show();
}
void Graph::on_generateButton_clicked()
{
fetchDataFromDatabase();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mou-junfang/shujikuduan.git
[email protected]:mou-junfang/shujikuduan.git
mou-junfang
shujikuduan
shujikuduan
master

搜索帮助