要使用Qt中的QTableView来显示数据库内容,需要先连接到数据库并获取数据。可以使用Qt中的QSqlDatabase类连接到不同类型的数据库(如MySQL、SQLite、PostgreSQL等)。
以下是一个示例代码,展示如何在Qt中使用QSqlDatabase和QSqlQuery来连接到MySQL数据库,并将查询结果显示在QTableView中:
#include <QtSql>
#include <QTableView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// Connect to MySQL database
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 -1;
}
// Execute query and get results
QSqlQuery query;
query.exec("SELECT * FROM mytable");
QSqlQueryModel *model = new QSqlQueryModel();
model->setQuery(query);
// Set up the table view and populate it with data
QTableView tableView;
tableView.setModel(model);
tableView.show();
return app.exec();
}
这段代码首先连接到名为”mydatabase”的MySQL数据库,并执行一个简单的查询来获取名为”mytable”的表中的所有行。然后,将查询结果存储在QSqlQueryModel中,并将其设置为QTableView的模型。最后,展示该视图并运行应用程序。
注意:在使用QSqlQueryModel时,必须确保查询中包含所有所需的列,并且列名与表中的实际列名匹配。否则,将无法正确地显示数据。