2011-08-06 85 views
3

我在使用qt構建的程序時遇到了一些困難。一旦我這樣做,我如何讓數據庫與表格小部件一起工作?連接Mysql和qt?

我應該讓你知道,我不知道從哪裏開始,除了使用libreoffice庫創建數據庫。

+0

你沒有給我們太多的信息繼續下去。但是,如果你正在尋找如何將Qt連接到MySQL,你不必擔心。這已經由[QSqlDatabase](http://doc.qt.nokia.com/latest/qsqldatabase.html) – Bart

回答

1

在Qt的幫助系統下,查看示例,轉到SQL,然後選擇Table Model Example。你會發現在Qt中使用MySQL並不難。 (您可能需要手動編譯qtmysql驅動程序;在我的系統上,它位於/QtSources/4.7.3/src/plugins/sqldrivers/mysql/mysql.pro。只需qmake/make/make install。祝您好運並盡情享受!

3

Qt提供的模型/視圖框架,它是對錶,樹,或列表中的數據提供了非常靈活的工具。所以你需要使用該模型是QSqlTableModel

首先創建一個QSqlDatabase實例,並連接到數據庫

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 
db.setHostName("localhost"); 
db.setDatabaseName("my_database"); 
db.setUserName("username"); 
db.setPassword("password"); 
if(!db.open()) 
    QMessageBox::warning(this,"Error","Unable to connect to the database"); 

然後創建模型

QSqlTableModel *model = new QSqlTableModel(parent,db); 
model->setTable("students"); 
model->select(); //< fetch data 

,並終於說出了表,從這個模型diplay數據

QTableView *table = new QTableView; 
table->setModel(model); 
0
  1. 增加QT + =核心SQL到的.pro
  2. 下載libmysq.dll,並加入到QT間>的Qt 5.3.0 - > mingw482_32 - >插件 - > sqldrivers
  3. 創建新的Qt控制檯文件
  4. 加入這一行的main.cpp

int main(int argc, char *argv[]) 
{ 
QCoreApplication a(argc, argv); 


QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 
db.setHostName("localhost"); 
db.setUserName("root"); 
db.setPassword(""); 
db.setDatabaseName("sim"); 

if(db.open()) 
{ 
    qDebug() << "connected " << db.hostName(); 
}else{ 
qDebug() << "Connection FAILED."; 

} 
return a.exec(); 
}