#ifndef CUSTOMSORTPROXYMODEL_H
|
#define CUSTOMSORTPROXYMODEL_H
|
|
#include <QSortFilterProxyModel>
|
#include <QDebug>
|
|
|
class CustomSortProxyModel : public QSortFilterProxyModel
|
{
|
public:
|
CustomSortProxyModel();
|
bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override {
|
|
// 获取数据
|
QVariant leftData = sourceModel()->data(source_left);
|
QVariant rightData = sourceModel()->data(source_right);
|
// qDebug()<<"自定义代理排序"<<source_left<<leftData.type();
|
|
if(source_left.column() >= 2 && source_left.column() <= 8){
|
return leftData.toDouble() < rightData.toDouble();
|
}
|
// 根据数据类型自定义排序逻辑
|
// if (leftData.type() == QVariant::String) {
|
// // 字符串按字母顺序排序
|
// return leftData.toString() < rightData.toString();
|
// } else if (leftData.type() == QVariant::Int) {
|
// // 整数按数值大小排序
|
// return leftData.toInt() < rightData.toInt();
|
// }else if(leftData.type() == QVariant::Double){
|
// return leftData.toDouble() < rightData.toDouble();
|
// }
|
|
// 默认按字符串排序
|
return leftData.toString() < rightData.toString();
|
}
|
};
|
|
#endif // CUSTOMSORTPROXYMODEL_H
|