QT筆記 QStandardItem樹自動排序

2021-10-25 13:57:36 字數 727 閱讀 6725

使用類qstandarditem建立的樹形項,在樹形檢視中顯示時,預設是按照建立的順序進行排序。若實現自動按照例如名稱中的字母順序排序的話,需要用到兩個函式,其原型如下:

voidqstandarditemmodel::setsortrole(qt::itemdatarole role = displayrole)

voidqstandarditem::sortchildren(int column, qt::sortorder order = qt::ascendingorder)

用於設定根據什麼進行排序。其引數為列舉型別,預設為itemdatarole::displayrole,該設定會以text()函式所返回的內容為依據進行排序。其它如itemdatarole::tooltiprole,會以tooltip()的返回內容進行排序。

對其下的child進行一次排序操作。引數column表示所指定的列,但實測該值只能設為0,函式會對該qstandarditem下的全樹進行排序;引數order是排序順序,為列舉型別,只有正倒兩個列舉值,預設是正序。需要注意的是,該函式只在呼叫的時候排一次序,所以應在樹中加入所有項後再呼叫此函式。

Qt學習筆記

1.參考資料 1 2 3 4 5 6 2.faq 2.1.qt creator 2.1.1.xp下用qt creator編譯自帶例子mdi sdi 當不勾選projects build settings build environment的 clear system environment 時,編譯...

QT學習筆記

1.在windows下配置好qt的環境變數以後,用cmd開始編譯,qmake project qmake hello.pro mingw32 make 結果出現錯誤 include 問題已經解決了,主要是 故而只需在.pro檔案中加入 greaterthan qt major version,4 q...

Qt 學習筆記

常用控制項對應類 窗體 qwidget 水平布局 qhboxlayout 豎直布局 qvboxlayout 網格布局 qgridlayout 按鈕 qpushbutton 標籤 靜態文字框 qlabel qlineedit label new qlabel tr find what lineedit...