关于Q3ListView的排序功能
2015-06-11 14:44
253 查看
问题现象:
当给Q3ListView控件的某一个节点Q3ListViewItem添加孩子节点后,显示这些插入的孩子节点与插入的顺序不一致。
调查原因:
Q3ListView开启了排序功能,导致上述现象的出线。
代码Demo如下:
//Q3ListViewDemoDlg.h
#pragma once
#include <QDialog.h>
class Q3ListView;
class CQ3ListViewDemoDlg :
public QDialog
{
public:
CQ3ListViewDemoDlg(QWidget *pParent = NULL);
~CQ3ListViewDemoDlg();
private:
Q3ListView *m_pView;
};
//Q3ListViewDemoDlg.cpp
#include "StdAfx.h"
#include <Q3ListView>
#include <Q3ListViewItem>
#include "Q3ListViewDemoDlg.h"
CQ3ListViewDemoDlg::CQ3ListViewDemoDlg(QWidget *pParent)
:QDialog(pParent)
{
m_pView = new Q3ListView(this);
/// ***********设置为不排序
m_pView->setSorting(-1);
m_pView->addColumn("1111");
Q3ListViewItem *pItem = new Q3ListViewItem(m_pView, "705");
//pItem->setText(0, "705");
QStringList lstItemLabel;
lstItemLabel<<"#1"<<"#2"<<"#3"<<"#4"<<"#5"<<"#6"<<"#7"<<"#8"<<"#9"<<"#10"<<"#11"<<"#12"<<"#13"<<"#14";
Q3ListViewItem *pPre = NULL;
while(!lstItemLabel.isEmpty())
{
Q3ListViewItem *pChildItem = new Q3ListViewItem(m_pView->firstChild(), lstItemLabel.last());
////qDebug()<<(pItem->firstChild()->text(0));
//pChildItem->setText(0, );
lstItemLabel.removeLast();
}
QGridLayout *pGridLayout = new QGridLayout(this);
pGridLayout->addWidget(m_pView, 0, 0);
pItem->setOpen(true);
}
CQ3ListViewDemoDlg::~CQ3ListViewDemoDlg(void)
{
}
上述代码执行结果如下:
不排序的显示结果与插入的顺序一样;
若将m_pView->setSorting(-1);删掉,则执行结果如下:
排序后,插入结果与显示的顺序不一致
当给Q3ListView控件的某一个节点Q3ListViewItem添加孩子节点后,显示这些插入的孩子节点与插入的顺序不一致。
调查原因:
Q3ListView开启了排序功能,导致上述现象的出线。
代码Demo如下:
//Q3ListViewDemoDlg.h
#pragma once
#include <QDialog.h>
class Q3ListView;
class CQ3ListViewDemoDlg :
public QDialog
{
public:
CQ3ListViewDemoDlg(QWidget *pParent = NULL);
~CQ3ListViewDemoDlg();
private:
Q3ListView *m_pView;
};
//Q3ListViewDemoDlg.cpp
#include "StdAfx.h"
#include <Q3ListView>
#include <Q3ListViewItem>
#include "Q3ListViewDemoDlg.h"
CQ3ListViewDemoDlg::CQ3ListViewDemoDlg(QWidget *pParent)
:QDialog(pParent)
{
m_pView = new Q3ListView(this);
/// ***********设置为不排序
m_pView->setSorting(-1);
m_pView->addColumn("1111");
Q3ListViewItem *pItem = new Q3ListViewItem(m_pView, "705");
//pItem->setText(0, "705");
QStringList lstItemLabel;
lstItemLabel<<"#1"<<"#2"<<"#3"<<"#4"<<"#5"<<"#6"<<"#7"<<"#8"<<"#9"<<"#10"<<"#11"<<"#12"<<"#13"<<"#14";
Q3ListViewItem *pPre = NULL;
while(!lstItemLabel.isEmpty())
{
Q3ListViewItem *pChildItem = new Q3ListViewItem(m_pView->firstChild(), lstItemLabel.last());
////qDebug()<<(pItem->firstChild()->text(0));
//pChildItem->setText(0, );
lstItemLabel.removeLast();
}
QGridLayout *pGridLayout = new QGridLayout(this);
pGridLayout->addWidget(m_pView, 0, 0);
pItem->setOpen(true);
}
CQ3ListViewDemoDlg::~CQ3ListViewDemoDlg(void)
{
}
上述代码执行结果如下:
不排序的显示结果与插入的顺序一样;
若将m_pView->setSorting(-1);删掉,则执行结果如下:
排序后,插入结果与显示的顺序不一致
相关文章推荐
- nodejs 学习资料
- 纯lua版A*算法优化测试
- NFS
- 距离汇总
- Android项目开发前的准备工作
- iOS ARC下dealloc过程及.cxx_destruct的探究
- [歪谈]为什么项目经理是很难有节操的选举
- 悲剧!Homebrew 的作者被 Google 拒啦,因为他不会翻转二叉树(转自V2EX)
- 挨踢人生路
- [Windows编程] Windows最常见的数据类型列表
- Apache Shiro 使用手册(五)Shiro 配置说明
- 【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送
- Zookeeper问题排查
- 自定义RatingBar 评分控件
- 挨踢人生路
- 解决myeclipse部署web项目时报错
- Phalcon学习笔记(2)DI依赖注入器和加载器
- SAT数学三角函数公式小结
- 参数带中文
- jquery实现可编辑的下拉框( input + select )