您的位置:首页 > 编程语言 > Qt开发

重载QTreeWidgetItem operator< 解决排序问题

2016-09-19 09:36 459 查看
Qt的 QTableWidget 和 QTreeWidget 对item的排序,一直都存在一个问题,例如有三个item,text分别为1、3、15,排序的结果必然为1、15、3,这样不是我们想要的结果,所以需要通过重载QTreeWidgetItem的 operator< 函数,改变排序比较的方式,达到我们想要的效果。

.h文件

<span style="font-family:Verdana;font-size:12px;">
class CTreeWidgetItemEx : public QTreeWidgetItem
{
public:
explicit CTreeWidgetItemEx(QTreeWidgetItem * parent = 0, int type = QTreeWidgetItem::Type);
~CTreeWidgetItemEx();

bool operator<(const QTreeWidgetItem & other) const;
};
</span>


.cpp文件

<span style="font-family:Verdana;font-size:12px;">
CTreeWidgetItemEx::CTreeWidgetItemEx(QTreeWidgetItem * parent /*= 0*/, int type /*= QTreeWidgetItem::Type*/)
: QTreeWidgetItem(parent, type)
{

}

CTreeWidgetItemEx::~CTreeWidgetItemEx()
{

}

bool CTreeWidgetItemEx::operator<(const QTreeWidgetItem & other) const
{
unsigned int a = this->text(0).toUInt();
unsigned int b = other.text(0).toUInt();

return (a < b);
}
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息