我有一个带有treeView的Qt小部件,它从组件外部(每几毫秒)更新一次。我已经在treeView中添加了一个标题,现在我想对元素进行排序:
treeView->header()->setClickable(true);
treeView->header()->setSortIndicatorShown(true);
我可以单击标题并对标识符进行排序,但是一旦新数据到达并填充树,我希望它能自动更新。最简单的方法是什么?
干杯。
答案 0 :(得分:0)
为此目的使用QSortFilterProxyModel
。
QTreeView *treeView = new QTreeView;
MyItemModel *sourceModel = new MyItemModel(this);
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(sourceModel);
treeView->setModel(proxyModel);
获取并设置新数据后,请使用void QSortFilterProxyModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder )
方法
例如:
proxyModel->sort(1);
您似乎使用了QTimer
,因此您可以在与sort()
信号相关的广告位中使用timeout
方法。