Qt 學習之路 :可視化顯示數據庫數據


前面我們用了兩個章節介紹了 Qt 提供的兩種操作數據庫的方法。顯然,使用QSqlQuery的方式更靈活,功能更強大,而使用QSqlTableModel則更簡單,更方便與 model/view 結合使用(數據庫應用很大一部分就是以表格形式顯示出來,這正是 model/view 的強項)。本章我們簡單介紹使用QSqlTableModel顯示數據的方法。當然,我們也可以選擇使用QSqlQuery獲取數據,然后交給 view 顯示,而這需要自己給 model 提供數據。鑒於我們前面已經詳細介紹過如何使用自定義 model 以及如何使用QTableWidget,所以我們這里不再詳細說明這一方法。

 

我們還是使用前面一直在用的 student 表,直接來看代碼:

這里的connect()函數還是我們前面使用過的,我們主要關注剩下的代碼。

正如前一章的代碼所示,我們在main()函數中創建了QSqlTableModel對象,使用 student 表。student 表有三列:id,name 和 age,我們選擇按照 name 排序,使用setSort()函數達到這一目的。然后我們設置每一列的列頭。這里我們只使用了后兩列,第一列沒有設置,所以依舊顯示為列名 id。

在設置好 model 之后,我們又創建了QTableView對象作為視圖。注意這里的設置:單行選擇,按行選擇。resizeColumnsToContents()說明每列寬度適配其內容;setEditTriggers()則禁用編輯功能。最后,我們設置最后一列要充滿整個窗口。我們的代碼中有一行注釋,設置第一列不顯示。由於我們使用了QSqlTableModel方式,不能按列查看,所以我們在視圖級別上面做文章:將不想顯示的列隱藏掉。

接下來運行代碼即可看到效果:

數據庫顯示

如果看到代碼中很多“魔術數字”,更好的方法是,使用一個枚舉將這些魔術數字隱藏掉,這也是一種推薦的方式:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM