總體介紹
-
QTreeWidget類提供了一個使用預定義樹模型的樹視圖
-
QTreeWidget類是一個十方方便使用的類,它提供了一個標准的Tree小部件,如下圖所示的界面
- 該類基於Qt的Model / View架構,並使用默認模型來保存項目,每一個都是一個 QTreeWidgetItem
- 所以是需要和 QTreeWidgetItem 樹節點控件 結合使用的
-
該樹可以包含一個標題,其中包含控件中每個列的部分。通過使用 setHeaderLabels()提供字符串列表來設置每個部分的標簽是最容易的
- 但是可以使用QTreeWidgetItem構造自定義標頭並使用 setHeaderItem() 函數將其插入樹中
-
樹中的項目可以根據預定義的排序順序按列排序。如果啟用排序,則用戶可以通過單擊列標題來排序項目
- 可以通過調用 setSortingEnabled() 來啟用或禁用排序
- isSortingEnabled() 函數指示是否啟用排序
- 小案例
from PyQt5.Qt import *
app = QApplication([])
window = QWidget()
window.resize(320, 450)
window.move(300, 300)
treewidget = QTreeWidget(window)
treewidget.resize(300, 400)
treewidget.move(10, 10)
treewidget.headerItem().setText(0, '列1')
treewidget.headerItem().setText(1, '列2')
treewidget.headerItem().setText(2, '列3')
root = QTreeWidgetItem(treewidget)
root.setText(0, "A測試")
root.setText(1, "B測試")
root.setText(2, 'C測試')
root1 = QTreeWidgetItem(root)
root1.setText(0, "A測試-1")
root1.setText(1, 'A測試-2')
root1.setText(2, 'A測試-3')
root2 = QTreeWidgetItem(root)
root2.setText(0, 'B測試-1')
root2.setText(1, "B測試-2")
root2.setText(2, "B測試-3")
root3 = QTreeWidgetItem(root)
root3.setText(0, 'C測試-1')
root3.setText(1, "C測試-2")
root3.setText(2, "C測試-3")
root.addChild(root1)
root.addChild(root2)
root.addChild(root3)
window.show()
app.exec_()