重载QTreeWidgetItem operator< 解决排序问题

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


.h文件

class CTreeWidgetItemEx : public QTreeWidgetItem
{
public:
    explicit CTreeWidgetItemEx(QTreeWidgetItem * parent = 0, int type = QTreeWidgetItem::Type);
    ~CTreeWidgetItemEx();

    bool operator<(const QTreeWidgetItem & other) const;
};


.cpp文件

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);
}


你可能感兴趣的:(Qt,QTreeWidgetItem,排序,operator,qt)