qt designer tableview 绑定 mysql
时间: 2023-09-15 17:20:05 浏览: 236
QT的TableView实现多级表头
以下是在QT Designer中绑定MySQL数据库的步骤:
1. 打开QT Designer并创建一个新的窗体。
2. 从工具箱中拖动一个TableView到窗体上。
3. 右键单击TableView并选择“编辑对象连接”。
4. 在“对象连接”对话框中,选择“activated”信号,并单击“编辑”按钮。
5. 在“槽函数”对话框中,输入一个名称(例如“loadData()”),然后单击“确定”。
6. 在QT Creator中创建一个新的C++文件,将其命名为“database.cpp”(或者其他你想要的名称)。
7. 在“database.cpp”文件中,添加以下代码来连接MySQL数据库:
```C++
#include <QSqlDatabase>
#include <QSqlQuery>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mydatabase");
db.setUserName("username");
db.setPassword("password");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return;
}
```
请确保将“mydatabase”、“username”和“password”替换为你的MySQL数据库的名称、用户名和密码。
8. 在“database.cpp”文件中,添加以下代码来执行SQL查询并将结果加载到TableView中:
```C++
QSqlQuery query;
query.exec("SELECT * FROM mytable");
QStandardItemModel *model = new QStandardItemModel();
model->setColumnCount(3);
model->setHeaderData(0, Qt::Horizontal, "ID");
model->setHeaderData(1, Qt::Horizontal, "Name");
model->setHeaderData(2, Qt::Horizontal, "Age");
while (query.next()) {
QList<QStandardItem*> row;
row.append(new QStandardItem(query.value(0).toString()));
row.append(new QStandardItem(query.value(1).toString()));
row.append(new QStandardItem(query.value(2).toString()));
model->appendRow(row);
}
ui->tableView->setModel(model);
```
请确保将“mytable”替换为你的MySQL表的名称。
9. 在QT Designer中,选择TableView,然后转到属性编辑器中的“模型”属性。
10. 单击“选择”按钮,并选择“database.cpp”文件作为数据源。
11. 选择“loadData()”作为槽函数。
12. 保存并运行程序,你应该能够看到MySQL数据库中的数据加载到TableView中。
注意:为了使以上代码正常工作,你需要在项目文件的pro文件中添加以下行:
```C++
QT += sql
```
这将包含Qt的SQL模块。
阅读全文