# 安装QtCreator和相关开发工具
sudo apt-get install qtcreator qt5-default
# 安装数据库开发库(根据您使用的数据库选择)
# MySQL
sudo apt-get install libmysqlclient-dev qt5-default qttools5-dev-tools
# PostgreSQL
sudo apt-get install libpq-dev postgresql-server-dev-all
# SQLite (通常已包含在Qt中)
sudo apt-get install sqlite3 libsqlite3-dev
qtcreator --version
qmake --version
在QtCreator中创建新项目时,可以通过以下代码检查可用驱动:
#include <QSqlDatabase>
#include <QDebug>
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << driver;
cd /path/to/Qt/5.x.y/Src/qtbase/src/plugins/sqldrivers/mysql
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient" mysql.pro
make
sudo make install
在项目文件中添加数据库模块:
QT += sql
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>
bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 或 QPSQL, QSQLITE
db.setHostName("localhost");
db.setDatabaseName("your_database");
db.setUserName("username");
db.setPassword("password");
if (!db.open()) {
qDebug() << "Database error:" << db.lastError().text();
return false;
}
return true;
}
QSqlQuery query;
query.exec("SELECT * FROM your_table");
while (query.next()) {
QString name = query.value(0).toString();
// 处理数据...
}
QSqlQuery query;
query.prepare("INSERT INTO your_table (id, name) VALUES (?, ?)");
query.addBindValue(1001);
query.addBindValue("Test Name");
query.exec();
启用SQL调试:
QSqlDatabase db = QSqlDatabase::database();
db.setConnectOptions("QSQLITE_ENABLE_TRACE=1");
查看最后错误:
if (!query.exec()) {
qDebug() << "Query error:" << query.lastError().text();
qDebug() << "Executed query:" << query.lastQuery();
}
包含数据库驱动:
SQLite数据库位置:
QString dbPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
QDir().mkpath(dbPath);
db.setDatabaseName(dbPath + "/database.db");
问题1:QMYSQL驱动未加载
- 解决方案:
bash
sudo apt-get install libqt5sql5-mysql
或手动编译MySQL驱动
问题2:数据库连接超时
- 解决方案:
cpp
db.setConnectOptions("MYSQL_OPT_RECONNECT=1");
问题3:QtCreator无法找到数据库头文件
- 解决方案:在.pro文件中添加包含路径
qmake
INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient
通过以上配置,您可以在QtCreator中顺利开发Linux平台下的数据库应用程序。根据实际使用的数据库类型,可能需要调整部分配置参数。