一.介绍
很多引用场景中,我们需要使用到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的QTableWidget中按自定义方式对IP地址进行排序,通过继承QTableWidgetItem并重写比较运算符,展示了如何设置排序编号并应用于实际项目。
1619

被折叠的 条评论
为什么被折叠?



