QTableWidget排序功能
(1)、注意默认是按照文本方式来排序的,对于想要数据排序的设置如下:
方法一:设置QTableWidgetItem的setData方法,第一个参数是Qt::EditRole,
int value = 20;
QTableWidgetItem *item = new QTableWidgetItem;
//这样设置,排序是按照数字来排
item->setData(Qt::UserRole,value);
方法一有一个问题,当double数据太长时,数据类型会自动转换成String类型,导致排序有问题,升级方法如下
double dValue =987654321.12345;
//'f'表示不使用科学计数法,4表示保留4位小数
QString itemText = QString::number(dValue, 'f', 4);
//这样设置,排序是按照数字来排
item->setData(Qt::UserRole,value);
(2)、需要注意的是排序功能要在设置表格数据时候先关闭,填充结束表格数据之后再开启
//先关闭排序功能
ui->tableWidget->setSortingEnabled(false);
//数据填充操作
……
//开启排序工功能
ui->tableWidget->setSortingEnabled(true);