关于Q3ListView的排序功能

问题现象:

当给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);删掉,则执行结果如下:


排序后,插入结果与显示的顺序不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值