解決QTableWidget不顯示數據的問題
阿新 • • 發佈:2018-09-21
代碼 ica src widgets 解決 b- UNC pen png
QTableWidget通常用於數據的展示,通過其表格布局可以讓用戶更清晰的查看數據,同時也讓數據的篩選變得更加直觀。
不過,初學者們和粗心大意的人總是會發現明明自己數據已經正常添加,可是程序運行之後卻看不到QTableWidget上有任何一點數據,一片空白。
這是怎麽回事呢?我們先看一個可以復現這個問題的代碼:
1 func main() { 2 widgets.NewQApplication(len(os.Args), os.Args) 3 4 table := widgets.NewQTableWidget(nil) 5 table.SetColumnCount(3導致數據無法顯示的代碼) 6 table.SetHorizontalHeaderLabels([]string{"編號", "姓名", "年齡"}) 7 // 去除邊框 8 table.SetShowGrid(false) 9 10 // 設置數據 11 num1 := widgets.NewQTableWidgetItem2("0", 0) 12 name1 := widgets.NewQTableWidgetItem2("anmi", 0) 13 age1 := widgets.NewQTableWidgetItem2("20", 0) 14 table.SetItem(0, 0, num1) 15 table.SetItem(0, 1, name1) 16 table.SetItem(0, 2, age1) 17 18 num2 := widgets.NewQTableWidgetItem2("1", 0) 19 name2 := widgets.NewQTableWidgetItem2("terra", 0) 20 age2 := widgets.NewQTableWidgetItem2("24", 0) 21 table.SetItem(1, 0, num2) 22 table.SetItem(1, 1, name2)23 table.SetItem(1, 2, age2) 24 25 table.SetWindowTitle("QTableWidget") 26 table.Show() 27 28 widgets.QApplication_Exec() 29 }
這是它的效果:
沒錯,表頭正常顯示了,然而數據卻不見了!
我們再來看一下修復後的代碼:
1 func main() { 2 widgets.NewQApplication(len(os.Args), os.Args) 3 4 table := widgets.NewQTableWidget(nil) 5 table.SetColumnCount(3) 6 table.SetRowCount(2) 7 table.SetHorizontalHeaderLabels([]string{"編號", "姓名", "年齡"}) 8 // 去除邊框 9 table.SetShowGrid(false) 10 11 // 設置數據 12 num1 := widgets.NewQTableWidgetItem2("0", 0) 13 name1 := widgets.NewQTableWidgetItem2("anmi", 0) 14 age1 := widgets.NewQTableWidgetItem2("20", 0) 15 table.SetItem(0, 0, num1) 16 table.SetItem(0, 1, name1) 17 table.SetItem(0, 2, age1) 18 19 num2 := widgets.NewQTableWidgetItem2("1", 0) 20 name2 := widgets.NewQTableWidgetItem2("terra", 0) 21 age2 := widgets.NewQTableWidgetItem2("24", 0) 22 table.SetItem(1, 0, num2) 23 table.SetItem(1, 1, name2) 24 table.SetItem(1, 2, age2) 25 26 table.SetWindowTitle("QTableWidget") 27 table.Show() 28 29 widgets.QApplication_Exec() 30 }正確的代碼
顯示效果:
其實問題很簡單,看代碼的第六行,我們設置了行數。
QTableWidget需要先設置一共有多少行數據才能正常顯示,如果不設置那麽默認是0行數據,也就是什麽也不顯示。
所以需要QTableWidget的人一定不要忘了使用SetRowCount告訴widget有多少數據需要繪制出來。
解決QTableWidget不顯示數據的問題