QTableWidgetble自定义表头排序设置
作者:互联网
一.介绍
很多引用场景中,我们需要使用到QTableWidget来显示内容,例如有时显示ip地址时点击排序时,默认是按照Qt字符串来排序的,那么如何按照自己的方式来排序呢?
二.使用
下面为一种简单的实现方法:
class CTableWidgetIPItem : public QObject, public QTableWidgetItem
{
Q_OBJECT
public:
CTableWidgetIPItem(QString strTset);
~CTableWidgetIPItem();
bool operator < (const QTableWidgetItem &other) const;
};
CTableWidgetIPItem::CTableWidgetIPItem(QString strTset)
:QTableWidgetItem(strTset)
{
}
CTableWidgetIPItem::~CTableWidgetIPItem()
{
}
bool CTableWidgetIPItem::operator<(const QTableWidgetItem &other) const
{
unsigned int uLeft = data(Qt::UserRole).toInt();
unsigned int uRight = other.data(Qt::UserRole).toInt();
if (uLeft >= uRight)
{
return false;
}
else
{
return true;
}
}
我们只需要从QTableWidgetItem继承而来进行,然后在我们的工程中添加使用:
unsigned int nNum = 1;///排序编号 根据自己来设定
CTableWidgetIPItem* pItem = new CTableWidgetIPItem("test"):
pItem->setData(Qt::UserRole, nNum);
不需要排序的可以直接调用QTableWidgetItem !!!
好啦 是不是觉得好简单!!!
原文链接:https://blog.csdn.net/weixin_38887743/article/details/117448488
标签:Qt,自定义,int,CTableWidgetIPItem,strTset,表头,QTableWidgetble,QTableWidgetItem,排序 来源: https://blog.csdn.net/ctrigger/article/details/120498051