Qt 优化代码:表格视图数据显示
Qt 优化代码:表格视图数据显示
本示例展示如何使用 Qt 框架实现表格视图数据显示,并对代码进行优化,使其更易读、易于维护。
代码结构
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTableView>
#include <QSqlTableModel>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
void createDatabaseConnection();
void createTableView();
void createTableModel();
QTableView *tableView;
QSqlTableModel *model;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
createDatabaseConnection();
createTableView();
createTableModel();
}
MainWindow::~MainWindow()
{
delete model;
}
void MainWindow::createDatabaseConnection()
{
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase('QSQLITE');
db.setDatabaseName('smart_home.db');
// 打开数据库
if (!db.open()) {
qDebug() << "Failed to open database:" << db.lastError().text();
return;
}
}
void MainWindow::createTableView()
{
// 创建表格视图
tableView = new QTableView(this);
setCentralWidget(tableView);
}
void MainWindow::createTableModel()
{
// 创建模型
model = new QSqlTableModel(this);
model->setTable('home_status'); // 设置表名
// 加载数据
if (!model->select()) {
qDebug() << "Failed to load data:" << model->lastError().text();
return;
}
// 设置表格视图的模型
tableView->setModel(model);
}
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
代码优化
- 将代码逻辑划分到不同的函数中: 将数据库连接、表格视图创建、模型创建等逻辑分别封装到函数中,提高代码的可读性和可维护性。
- 使用错误处理机制: 使用
qDebug打印错误信息,方便调试。 - 代码注释: 添加必要的注释,解释代码逻辑。
- 命名规范: 使用清晰的变量名和函数名,提高代码的可读性。
代码说明
- 创建数据库连接: 使用
QSqlDatabase::addDatabase()创建 SQLite 数据库连接,并设置数据库文件名。 - 创建表格视图: 使用
new QTableView()创建表格视图,并将视图设置为主窗口的中心部件。 - 创建模型: 使用
new QSqlTableModel()创建模型,并设置表名。 - 加载数据: 使用
model->select()加载数据。 - 设置模型: 使用
tableView->setModel()将模型设置为表格视图的模型。
运行结果
运行程序后,将会显示一个表格视图,其中包含数据库 smart_home.db 中 home_status 表的数据。
总结
本文介绍了如何使用 Qt 框架实现表格视图数据显示,并对代码进行优化,使其更易读、易于维护。通过合理的设计和代码优化,可以提高程序的可读性、可维护性和扩展性。
原文地址: https://www.cveoy.top/t/topic/fyuj 著作权归作者所有。请勿转载和采集!