天天看点

QTableWidget 自定义排序

QTableWidget功能强大,可以在每个格子里添加自己的wiget部件。

如果想对这些自己添加的widget进行排序有两种方法。

一种是直接设置每个格子对应的QTableWidgetItem的值,因为QTableWidget默认是据QTableWidgetItem来排序,调用的比较函数是:

bool QTableWidgetItem::operator< ( const QTableWidgetItem & other ) const   [virtual]

貌似QTableWidget 是据字符串来排序的。所以设置 QTableWidget 中的text值时要注意。

第二种办法是从QTableWidget 中派生,重写比较函数。

把自己写的派生类添加到QTableWidget中。

void QTableWidget::setItem ( int row, int column,  QTableWidgetItem  * item )

补充,第二种方法未测试。不过应该可以实现。。

继续阅读