全国医院排名,郑振铎的资料,t8002
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有多少数据需要绘制出来。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论