#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