c/c++语言开发共享解决QTableWidget不显示数据的问题

QTableWidget通常用于数据的展示,通过其表格布局可以让用户更清晰的查看数据,同时也让数据的筛选变得更加直观。 不过,初学者们和粗心大意的人总是会发现明明自己数据已经正常添加,可是程序运行之后却看不到QTableWidget上有任何一点数据,一片空白。 这是怎么回事呢?我们先看一个可以复现这 …

qtablewidget通常用于数据的展示,通过其表格布局可以让用户更清晰的查看数据,同时也让数据的筛选变得更加直观。

不过,初学者们和粗心大意的人总是会发现明明自己数据已经正常添加,可是程序运行之后却看不到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 }

导致数据无法显示的代码

这是它的效果:

解决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.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不显示数据的问题

其实问题很简单,看代码的第六行,我们设置了行数。

qtablewidget需要先设置一共有多少行数据才能正常显示,如果不设置那么默认是0行数据,也就是什么也不显示。

所以需要qtablewidget的人一定不要忘了使用setrowcount告诉widget有多少数据需要绘制出来。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/607667.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐