1.使用setData设置数值型值
添加数据时,使用setData来设置数据:
void QTreeWidgetItem::setData(
int column,
int role,
const QVariant &
value);
这样点击排序的时候,将是两个QVariant 的比较,QVariant 对各种基础类型的比较都有重载。 比如:
pTreeWidgetItem
->setData(
0,Qt
::DisplayRole,
30);
pTreeWidgetItem1
->setData(
0,Qt
::DisplayRole,
5);
这样排序的时候就是按照数字排序而不是字符串排序。
class CTreeWidgetItemEx :
public QTreeWidgetItem
{
public:
explicit CTreeWidgetItemEx(QTreeWidgetItem * parent =
0,
int type = QTreeWidgetItem::Type);
~CTreeWidgetItemEx();
bool operator<(
const QTreeWidgetItem & other)
const;
};
CTreeWidgetItemEx::CTreeWidgetItemEx(QTreeWidgetItem * parent ,
int 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);
}
参考文章: http://www.cnblogs.com/daidaigua/archive/2012/04/18/2455399.html http://blog.csdn.net/zhango5/article/details/52582915