wumu
2025-02-10 696f5b6779bd1f904c2497bb29a1cc991ab0477a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#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