qt中的tablewidget怎么与数据库连用
时间: 2024-02-17 11:04:05 浏览: 78
在Qt中,可以使用QSqlTableModel或QSqlQueryModel将数据从数据库中读取到QTableView或QTableWidget控件中。
以下是使用QSqlTableModel的示例:
1. 连接到数据库
```cpp
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("testdb");
db.setUserName("root");
db.setPassword("root");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return;
}
```
2. 创建QSqlTableModel对象并设置数据库表名
```cpp
QSqlTableModel *model = new QSqlTableModel(this, db);
model->setTable("mytable");
```
3. 填充数据到QTableWidget中
```cpp
model->select();
ui->tableWidget->setColumnCount(model->columnCount());
ui->tableWidget->setRowCount(model->rowCount());
for (int i = 0; i < model->rowCount(); i++) {
for (int j = 0; j < model->columnCount(); j++) {
QTableWidgetItem *item = new QTableWidgetItem(model->data(model->index(i, j)).toString());
ui->tableWidget->setItem(i, j, item);
}
}
```
4. 释放资源
```cpp
delete model;
db.close();
```
以上是使用QSqlTableModel连接数据库和填充数据到QTableWidget的示例。如果您希望手动执行SQL查询语句,可以使用QSqlQueryModel。
阅读全文