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

不过,初学者们和粗心大意的人总是会发现明明自己数据已经正常添加,可是程序运行之后却看不到QTableWidget上有任何一点数据,一片空白。

这是怎么回事呢?我们先看一个可以复现这个问题的代码:

 func main() {
widgets.NewQApplication(len(os.Args), os.Args) table := widgets.NewQTableWidget(nil)
table.SetColumnCount()
table.SetHorizontalHeaderLabels([]string{"编号", "姓名", "年龄"})
// 去除边框
table.SetShowGrid(false) // 设置数据
num1 := widgets.NewQTableWidgetItem2("", )
name1 := widgets.NewQTableWidgetItem2("anmi", )
age1 := widgets.NewQTableWidgetItem2("", )
table.SetItem(, , num1)
table.SetItem(, , name1)
table.SetItem(, , age1) num2 := widgets.NewQTableWidgetItem2("", )
name2 := widgets.NewQTableWidgetItem2("terra", )
age2 := widgets.NewQTableWidgetItem2("", )
table.SetItem(, , num2)
table.SetItem(, , name2)
table.SetItem(, , age2) table.SetWindowTitle("QTableWidget")
table.Show() widgets.QApplication_Exec()
}

导致数据无法显示的代码

这是它的效果:

没错,表头正常显示了,然而数据却不见了!

我们再来看一下修复后的代码:

 func main() {
widgets.NewQApplication(len(os.Args), os.Args) table := widgets.NewQTableWidget(nil)
table.SetColumnCount()
table.SetRowCount()
table.SetHorizontalHeaderLabels([]string{"编号", "姓名", "年龄"})
// 去除边框
table.SetShowGrid(false) // 设置数据
num1 := widgets.NewQTableWidgetItem2("", )
name1 := widgets.NewQTableWidgetItem2("anmi", )
age1 := widgets.NewQTableWidgetItem2("", )
table.SetItem(, , num1)
table.SetItem(, , name1)
table.SetItem(, , age1) num2 := widgets.NewQTableWidgetItem2("", )
name2 := widgets.NewQTableWidgetItem2("terra", )
age2 := widgets.NewQTableWidgetItem2("", )
table.SetItem(, , num2)
table.SetItem(, , name2)
table.SetItem(, , age2) table.SetWindowTitle("QTableWidget")
table.Show() widgets.QApplication_Exec()
}

正确的代码

显示效果:

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

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

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

解决QTableWidget不显示数据的问题的更多相关文章

  1. C# 解决ListView控件显示数据出现闪屏的问题

    一.发现问题 如果发送数据过快的情况下,ListVies滚屏显示数据时会显示闪屏,如下所示现象: 二.解决问题 根据出现闪屏的情况,在网上查了资料要使用双缓存的办法来处理.其原理是数据在缓存区中进行处 ...

  2. EL表达式显示数据取整问题

    第一 插入fmt标签库 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%&g ...

  3. Flexigrid在IE下不显示数据的处理

    文章总结自我的论坛提问: http://bbs.csdn.net/topics/390498434?page=1#post-394918028 解决方法: 网上的答案经我验证都是不靠谱的,以后大家就知 ...

  4. aspnet中通过多条件筛选来显示数据的实现

    UI图: 功能实现: 1.勾选住哪个选项之后,就加入了筛选.支持姓名的模糊查询. 2.对筛选出来的数据可以直接修改,并更新回数据库. 说明:显示的数据来自T_User表.数据显示控件使用的是 List ...

  5. datagrid数据表格当数据为0的时候页面不显示数据

    如下图: datagrid数据表格当数据为0的时候页面不显示数据,为空的表格数据全是0,但是页面无法显示 传递的json数据也是没问题的: 所以实在想不通,为什么easyUI datagrid 不显示 ...

  6. LigerUI之Grid使用详解(一)——显示数据

    目录: 一.概述 二.Grid使用步骤 三.使用Grid展示数据 四.源码下载 一.概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏 ...

  7. qt QTableWidget&&QTableView 导出数据到excel

    通常情况下,我们在开发过程中比较常用的方法是将表格的数据到处到excel文件.我也在这个点上头疼了很长时间,不过功夫不负苦心人,最终还是勉强达到效果,为了后面再次用到时不手忙脚乱现在将方法寄存在此,如 ...

  8. Struts1.x 中处理乱码及通过标签显示数据

    1.通过filter解决乱码问题 网页的请求到达之前,先要经过filter的处理: 提取数据出现乱码:request.setCharacterEncoding("UTF-8"); ...

  9. [转]qt QTableWidget&&QTableView 导出数据到excel

    转自http://blog.csdn.net/fairystepwgl/article/details/54576372 注意:由于在qt导出的过程中分为QTableWidget导出文件到excel和 ...

随机推荐

  1. flask-文件上传

    flask文件上传 流程 1. 上传的文件request.files拿取 2. 可以通过WTForms表单验证 3. 通过secure_filename (from werkzeug.utils im ...

  2. Linux命令中:rsync和scp之间的区别

    scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去, rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去 rsync -av 10.251.205.8:/usr1 ...

  3. Python学习笔记-基础2

    1.列表list 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 1.定义列表 names = ["Ronaldo","Messi" ...

  4. VSCode插件开发全攻略(五)跳转到定义、自动补全、悬停提示

    更多文章请戳VSCode插件开发全攻略系列目录导航. 跳转到定义 跳转到定义其实很简单,通过vscode.languages.registerDefinitionProvider注册一个provide ...

  5. 4 年前端狗,2 年 CTO

    阅读本文大概需要 14 分钟. 本文系作者:『Scott』原创发布于慕课网. 我,Scott,一家创业公司的 CTO. 从业6年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了100多个前 ...

  6. 第53节:Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  7. Python遍历List集合四种方法

    这篇文章主要介绍了Python 列表(List) 的四种遍历方法实例 详解的相关资料,需要的朋友可以参考下 分别是:直接遍历对象 通过索引遍历 通过enumerate方法 通过iter方法. 使用Py ...

  8. 【MySQL】存储emoji表情报错(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')的解决方案

    Emoji表情字符现在在APP已经广泛支持了.但是MySQL的UTF8编码对Emoji字符的支持却不是那么好.所以我们经常会遇到这样的异常:   Java.sql.SQLException: Inco ...

  9. vue计算属性(通过计算得来的属性)

    1.computed:是一个计算属性,用来监听属性的变化 eg: <p>computed:{{count}}</p> computed:{     count(){     c ...

  10. mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)

    一. 安装说明 安装XtraBackup 2.4 版本有三种方式: (1) 存储库安装Percona XtraBackup(推荐) (2 )下载的rpm或apt包安装Percona XtraBacku ...