今天写代码,发现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排序问题的更多相关文章

  1. 编程之美—烙饼排序问题(JAVA)

    一.问题描述 星期五的晚上,一帮同事在希格玛大厦附近的"硬盘酒吧"多喝了几杯.程序员多喝了几杯之后谈什么呢?自然是算法问题.有个同事说:"我以前在餐      馆打工,顾 ...

  2. QTableWidget详解(样式、右键菜单、表头塌陷、多选等)

    在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...

  3. QTableWidget行选中/删除/添加行

    1  均分各列 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方 tableWidget-> ...

  4. 关于SQL中的排序问题

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  5. distinct order by 排序问题

    使用类似“SELECT DISTINCT `col` FROM `tb_name` ORDER BY `time` DESC”这样的sql语句时,会遇到排序问题. 以上面的sql语句分析:order ...

  6. QTableWidget控件总结<二>

    QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了.QTableWidge ...

  7. QTableWidget控件总结<一>

    [1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有"家世& ...

  8. QTableWidget控件总结

    [1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研 ...

  9. QTableWidget 使用及美化_QtableWidget_QtableView滚动条宽度及样式

      //创建及属性设置m_tableWidget = new QTableWidget(this);m_tableWidget->setRowCount(10);m_tableWidget-&g ...

随机推荐

  1. JavaScript编程风格--基本的格式化

    缩进层级     推荐4个空格字符作为一个缩进层级. 语句结尾     推荐不要省略分号. 行的长度     最好一行不超过80个字符. 换行     在运算符后换行,下一行增加两个层级的缩进.   ...

  2. bootstrap基础样式使用

    <small> 为了给段落添加强调文本,则可以添加 class="lead" <small>本行内容是在标签内</small><br> ...

  3. MySQl 存储过程+游标

    DROP PROCEDURE IF exists pro_Insertflightplan_stat;  create procedure pro_Insertflightplan_stat(exec ...

  4. [译]Stairway to Integration Services Level 18 – 部署和执行

    介绍 在本文中,我们要创建一个SSIS Catalog 实例,部署我们的项目,并且运行 weather data loader 包. SSIS 2012 部署模型   SSIS 2012 Deploy ...

  5. 【Linux命令】Ubuntu14.04+QT5.2配置mysql

    安装qt: 官网下载qt5.2.1:qt-opensource-linux-x64-5.2.1.run 直接命令行运行:./qt-opensource-linux-x64-5.2.1.run 选择安装 ...

  6. [置顶] 关于CSDN2013博客之星的一些看法

    最近一个周,最火的话题当然要数CSDN2013博客之星拉票了. 实话实说,从12月14日开始,我连续5天拉票. 通过QQ群.QQ好友.CSDN文章.给CSDN粉丝发私信等多种方式拉票,真是累死我了. ...

  7. Unix/Linux环境C编程新手教程(5) Red Hat Enterprise Linux(RHEL)环境搭建

    Unix/Linux版本号众多,我们推荐Unix/Linux刚開始学习的人选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out运行出结果,证明C++程序编译成功.也 ...

  8. ADS2008 安装方法详解及文件下载

    一.我的安装的过程及方法 正常安装的方法: 1.- Install the program. 2.- Copy "license.lic" into "C:\ADS200 ...

  9. bootstrap框架开发电子商城案例

    bootstrap框架开发电子商城案例 玛图 bootstrap 商城框架

  10. WinForm界面中快捷键设置

    这是对整个界面的快捷键的设置,比如查询,保存. 1 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if ...