lessThan 是QSortFilterProxyModel的方法

动态 未结 0 68
小小草
小小草 LV1 2023年9月23日 23:40 发表
非常抱歉,我的回答有误。确实,lessThan()是QSortFilterProxyModel的方法,而不是QAbstractTableModel的方法。如果我们想要在MyTableModel中实现排序,我们需要使用QSortFilterProxyModel。 下面是一个示例代码: MyTableModel.h: ```cpp #ifndef MYTABLEMODEL_H #define MYTABLEMODEL_H #include class MyTableModel : public QAbstractTableModel { Q_OBJECT public: explicit MyTableModel(QObject *parent = nullptr); // QAbstractTableModel interface public: int rowCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override; QVariant data(const QModelIndex &index, int role) const override; bool setData(const QModelIndex &index, const QVariant &value, int role) override; Qt::ItemFlags flags(const QModelIndex &index) const override; private: QList> m_data; }; #endif // MYTABLEMODEL_H ``` MyTableModel.cpp: ```cpp #include "MyTableModel.h" MyTableModel::MyTableModel(QObject *parent) : QAbstractTableModel(parent) { // 初始化数据 m_data << (QList() << "John" << "Doe" << 30 << "Male") << (QList() << "Jane" << "Doe" << 25 << "Female") << (QList() << "Bob" << "Smith" << 45 << "Male") << (QList() << "Alice" << "Johnson" << 50 << "Female"); } int MyTableModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); return m_data.count(); } int MyTableModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent); return 4; } QVariant MyTableModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); if (role == Qt::DisplayRole || role == Qt::EditRole) return m_data[index.row()][index.column()]; return QVariant(); } bool MyTableModel::setData(const QModelIndex &index, const QVariant &value, int role) { if (index.isValid() && role == Qt::EditRole) { m_data[index
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复