重载QTreeWidgetItem operator< 解决排序问题

来源:互联网 发布:淘宝流量钱包领取失败 编辑:程序博客网 时间:2024/06/14 05:10

     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>


0 0