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 columnQTableWidgetItem * item )

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

 

目录
相关文章
自定义排序的常用方式
自定义排序的常用方式
QTableview 自适应宽度 点击表头排序
QTableview 自适应宽度 点击表头排序
|
8月前
|
索引
探索QTableWidget对单元格(QWidget/QTableWidgetItem)的内存管理[clearContents()]
1.clearContents() 会清除表格中的所有单元格内容,包括释放之前创建的QTableWidgetItem和通过 setCellWidget() 设置的 QWidget 对象,但是不指向nullptr并且是延时释放QWidget 的而QTableWidgetItem 立即释放; 2.使用 setItem 方法将一个 QTableWidgetItem 对象设置为表格中的一个单元格后,该对象的位置(即所在行的索引)不会改变。这意味着,如果之后将该对象设置为其他单元格,它的位置将保持不变; 3.而使用 setCellWidget 方法将一个QWidget对象设置单元格时,位置可能会改变
132 0
探索QTableWidget对单元格(QWidget/QTableWidgetItem)的内存管理[clearContents()]
QSpinBox/QDoubleSpinBox/QSlider组合使用
QSpinBox/QDoubleSpinBox/QSlider组合使用
246 0