setsectionresizemode example ejemplos c++ qt qtableview

c++ - example - ¿Cómo ordenar un QTableView por una columna?



qtableview example (1)

Estoy usando QTableView para mostrar un QAbstractTableModel:

#include <QtGui/QApplication> #include <QAbstractTableModel> #include <QTableView> class TestModel : public QAbstractTableModel { public: int rowCount(const QModelIndex &parent = QModelIndex()) const { return 2; } int columnCount(const QModelIndex &parent = QModelIndex()) const { return 2; } QVariant data(const QModelIndex &index, int role) const { switch (role) { case Qt::DisplayRole: { return 4 - index.row() + index.column(); } } return QVariant(); } }; int main(int argc, char *argv[]) { QApplication a(argc, argv); QTableView table; TestModel model; table.setModel(&model); table.setSortingEnabled(true); table.sortByColumn(0, Qt::AscendingOrder); table.reset(); table.show(); return a.exec(); }

El problema es que el resultado es exactamente el mismo cuando uso:

table.sortByColumn(0, Qt::AscendingOrder);

o

table.sortByColumn(0, Qt::DescendingOrder);

o

table.sortByColumn(1, Qt::AscendingOrder);

o

table.sortByColumn(1, Qt::DescendingOrder);

¿Qué estoy haciendo mal?


QAbstractTableModel proporciona una implementación vacía de sort() .

Trata de hacerlo

TestModel model; QSortFilterProxyModel proxyModel; proxyModel.setSourceModel( &model ); table.setModel( &proxyModel );