#ifndef CUSTOMSORTPROXYMODEL_H #define CUSTOMSORTPROXYMODEL_H #include #include 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()<<"自定义代理排序"<= 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