歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Qt中實時將Qtableview中的內容顯示在相應的控件上

Qt中實時將Qtableview中的內容顯示在相應的控件上

日期:2017/3/1 9:37:00   编辑:Linux編程

學習Qt有一段時間了,幾天做東西需要將Qtableview中的數據顯示在相應的控件上,想看好久,終於搞定了,特意拿出來,和大家分享,也當做是自己的一個學習筆記。

首先我的Qtableview中的的內容是從數據庫中查找出來再顯示 出來的。下面是以個關於某個公司信息種類的數據。這是數據庫中的記錄

效果是這樣的:

點擊上面的某行數據,下面的lineEdit中就會顯示出來對應的數據。如下圖所示

再點擊第二條數據,也會顯示出來。

效果很不錯,完美的實現了,自己非常的高興,將過程寫出來,對於初學者而言,可以參考參考。高手請路過

首先,我想到是必須建立信號和槽的連接,只有這樣才能實現實時的顯示,到底需要哪個信號呢?既然是鼠標的單擊,那肯定就是click信號了。

connect(ui->Supplier_tableView,SIGNAL(clicked(QModelIndex)),this,SLOT(ShowSupplyclick()));

將界面中的Qtableview的點擊信號,和自己寫的槽函數進行關聯。
下面是自己寫的槽函數:

/*
*獲取當前鼠標點擊的數據表中的內容,並將其顯示在相應的控件上
*/
void Basic_Data_Dialog::ShowSupplyclick()
{
static QSqlQueryModel supplymodel(ui->Supplier_tableView);
supplymodel.setQuery(QString("select * from Supply;"));
int row = ui->Supplier_tableView->currentIndex().row();
QSqlRecord record = supplymodel.record(row);
ui->EditsupId->setText(record.value(0).toString());
ui->EditSupName->setText(record.value(1).toString());
ui->EditSupAdress->setText(record.value(2).toString());
ui->EditSupPhon->setText(record.value(3).toString());
ui->EditSupMail->setText(record.value(4).toString());
ui->EditSupRemark->setText(record.value(5).toString());
}

代碼中寫的很詳細了,就不用過多的介紹了。上面的 record.value(0).toString() 就是對應數據表中的某個列的屬性,必須和自己數據表中的列對應,否則顯示的內容對應不上,這點一點要注意。

其他對於數據庫的操作很簡單,就是實現相應的增加、刪除、修改功能。

只有自己真正的做出來某件事,才會發現其中的樂趣。

Ubuntu 環境下Gtk與QT編譯環境安裝與配置 http://www.linuxidc.com/Linux/2013-08/88539.htm

Linux系統下QT環境搭建 http://www.linuxidc.com/Linux/2013-07/87576.htm

Ubuntu下QT控制台程序無法運行的解決方案以及XTerm的配置方法 http://www.linuxidc.com/Linux/2013-06/86244.htm

Ubuntu 10.04下QT4.7.4移植詳解 http://www.linuxidc.com/Linux/2013-01/77930.htm

Ubuntu 14.04下安裝部署Qt5開發環境 http://www.linuxidc.com/Linux/2014-05/101774.htm

Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved