QTableView/QTreeView設置自定義排序(非QSortFilterProxyModel)

QSortFilterProxyModel可以實現自定義排序,當數據量較大、排序邏輯比較複雜的情況下采用該排序加載可能較爲緩慢。

改進措施:自定義排序

QTreeViewBase.cpp實現

setSortingEnabled(false);//禁用自帶排序
header()->setSortIndicatorShown(true);
header()->setSectionsClickable(true);

這一步防止如果設置自帶排序會出現,刷新排序時,系統會對當前頁數據進行自帶排序,原因如下:

如果setSortingEnabled(true)會對原始數據進行排序

外部調用:

connect(m_pTable->header(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)), this, SLOT(onSort(int, Qt::SortOrder)));

此情況針對於自己維護數據情況,可以實現自定義的數據排序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章