QTableWidget排序问题
今天写代码,发现Qt4中QTableWidget显示查询结果数据时存在一个问题,具体原因不知道是用法不对还是QTableWidget本身存在的bug。现象如下:
1. 查询,能正常显示查询结果
2. 点击表头排序
3. 再一次进行查询,发现某写列内容为空
构造函数代码:
pTable = new QTableWidget(this);
QVBoxLayout*pLayout = newQVBoxLayout;
this->setLayout(pLayout);
QPushButton*pBtn = new QPushButton("查询",this);
pLayout->addWidget(pBtn);
pLayout->addWidget(pTable);
boolret =connect(pBtn, SIGNAL(clicked ( bool ) ) , this ,SLOT( QuerySlot( ) ) );
pTable->setSortingEnabled (true);
pTable->sortByColumn(0,Qt::AscendingOrder);
QStringListlabels ;
labels<<"供电单位"<<"变电站"<<"电压等级";
pTable->setColumnCount( labels.size() );
pTable->setHorizontalHeaderLabels ( labels );
pTable->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
pTable->setSelectionBehavior(QAbstractItemView::SelectRows);
查询函数代码:
pTable->clearContents();
pTable->setRowCount ( 0 );
QTableWidgetItem*pItem1 = NULL;
pTable->setRowCount(50);
for(int i = 0; i < 50; ++ i)
{
for (intj = 0; j< 3;++j)
{
pItem1 = new QTableWidgetItem;
pItem1->setText(QString::number(i)+","+QString::number(j));
pTable->setItem(i,j,pItem1);
}
}
都是执行同一个逻辑,搞不清楚为什么会出现这种情况。
目前找到的解决方法是,在查询函数开头加上
pTable->setSortingEnabled (false);
结尾加上
pTable->setSortingEnabled (true);
pTable->sortByColumn(0,Qt::AscendingOrder);
完整代码如下:
pTable->setSortingEnabled (false);
这样就可以正确显示。
pTable->clearContents();
pTable->setRowCount ( 0 );
QTableWidgetItem*pItem1 = NULL;
pTable->setRowCount(50);
for(int i = 0; i < 50; ++ i)
{
for (intj = 0; j< 3;++j)
{
pItem1 = new QTableWidgetItem;
pItem1->setText(QString::number(i)+","+QString::number(j));
pTable->setItem(i,j,pItem1);
}
}
pTable->setSortingEnabled (true);
pTable->sortByColumn(0,Qt::AscendingOrder);
http://blog.csdn.net/hai200501019/article/details/45746477
QTableWidget排序问题的更多相关文章
- 编程之美—烙饼排序问题(JAVA)
一.问题描述 星期五的晚上,一帮同事在希格玛大厦附近的"硬盘酒吧"多喝了几杯.程序员多喝了几杯之后谈什么呢?自然是算法问题.有个同事说:"我以前在餐 馆打工,顾 ...
- QTableWidget详解(样式、右键菜单、表头塌陷、多选等)
在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...
- QTableWidget行选中/删除/添加行
1 均分各列 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方 tableWidget-> ...
- 关于SQL中的排序问题
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...
- distinct order by 排序问题
使用类似“SELECT DISTINCT `col` FROM `tb_name` ORDER BY `time` DESC”这样的sql语句时,会遇到排序问题. 以上面的sql语句分析:order ...
- QTableWidget控件总结<二>
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了.QTableWidge ...
- QTableWidget控件总结<一>
[1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有"家世& ...
- QTableWidget控件总结
[1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研 ...
- QTableWidget 使用及美化_QtableWidget_QtableView滚动条宽度及样式
//创建及属性设置m_tableWidget = new QTableWidget(this);m_tableWidget->setRowCount(10);m_tableWidget-&g ...
随机推荐
- Java自定义简单标签
Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...
- OutLook 2010 收件箱子文件夹收到新邮件时没有桌面通知
开始---规则----管理规则和通知 规则和通知---电子邮件规则---批量选择账号---更改规则---在新邮件通知和窗口显示(选中)---确定 录入通知邮件消息---确定 效果如下:
- Android 学习开发笔记《Android认识》
1. Android:2007年11月5日第一版,2009年5月豪华版,2010年HTC手机 2. Android框架主要:应用程序.应用程序框架.函数库.运行时. ...
- Introduction to Guid ( globally unique identifier )
什么是 GUID? 全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装. 在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID. GUID 的格式为 ...
- Tomcat中配置自定义404错误页面
404,50x这种错误经常遇到. 如果%CATALINA_HOME%\conf\web.xml和具体应用中都有设置%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xm ...
- linux shell 执行多个命令的方法
(1)在每个命令之间用:(分号)隔开. (2)在每个命令之间用&&隔开. &&表示:若前一个命令执行成功,才会执行下一个.这样,可确保所有的命令执行完毕后,其执行过程都 ...
- POJ 1472 Coins (多重背包+滚动数组)
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 25827 Accepted: 8741 Description Pe ...
- QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用
QT 1.工具 assistant 帮助文档 qtconfig QT配置工具 qmake QT的make与项目文件智能创建工具 uic UI界面的设计文件的编译工具 mo ...
- vb.net 字符串的操作 应用
Module Module1 Sub Main() ' 定义3个字符串变量 Dim str1, str2, str3 As String '给str1,str2付初值 str1 = "Hel ...
- [转]如何在本地安装 Homebrew
作者:shede333 主页:http://my.oschina.net/shede333 官网:http://brew.sh/index_zh-cn.html 安装方式见 官网,在shell里执行 ...