2014-09-12 63 views
0

我有一個Qt窗口小部件,它從組件外部(每幾毫秒)更新一次。我添加了一個頭到TreeView,我現在想的元素排序:Qt排序列

treeView->header()->setClickable(true); treeView->header()->setSortIndicatorShown(true);

我可以點擊標題和idems做得到排序,但一旦新的數據來源和填充樹,我希望它自動更新。最簡單的方法是什麼?

乾杯。

回答

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信號。