QTableWidget繼承自QTableView。QSqlTableModel能與QTableView綁定,但不能於QTableWidget綁定。ide
QTableWidget是QT程序中經常使用的顯示數據表格的空間,很相似於VC、C#中的DataGrid。說到QTableWidget,就必須講一下它跟QTabelView的區別了。函數
QTableWidget是QTableView的子類,主要的區別是QTableView能夠使用自定義的數據模型來顯示內容(也就是先要經過setModel來綁定數據源),而QTableWidget則只能使用標準的數據模型,而且其單元格數據是QTableWidgetItem的對象來實現的(也就是不須要數據源,將逐個單元格內的信息填好便可)。這主要體如今QTableView類中有setModel成員函數,而到了QTableWidget類中,該成員函數變成了私有。使用QTableWidget就離不開QTableWidgetItem。QTableWidgetItem用來表示表格中的一個單元格,正個表格都須要用逐個單元格構建起來。ui
具體區別表格spa
區別點對象 |
QTableView繼承 |
QTableWidgetci |
繼承關係rem |
|
QTableWidget繼承自QTableViewget |
使用數據模型setModelit |
能夠使用setModel設置數據模型 |
setModel是私有函數,不難使用該函數設置數據模型 |
顯示覆選框setCheckState |
沒有函數實現複選框 |
QTableWidgetItem類中的setCheckState(Qt::Checked);能夠設置複選框 |
與QSqlTableModel綁定 |
QTableView能與QSqlTableModel綁定 |
QtableWidget不能與QSqlTableModel綁定 |
View與Model綁定注意事項
但視圖與模型綁定時,模型必須使用new來建立。不然視圖不能隨着模型的改變而改變。
Eorror錯誤的寫法
Right 正確的寫法