Qt 5.12--控件TreeView介紹
- 1 簡介
- 2 屬性
- 2.1 currentIndex : QModelIndex
- 2.2 itemDelegate : Component
- 2.3 model : QAbstractItemModel
- 2.4 rootIndex : QModelIndex
- 2.5 section
- 2.6 selection : ItemSelectionModel
- 3 信號
- 3.1 activated(index)
- 3.2 clicked(index)
- 3.3 collapsed(index)
- 3.4 doubleClicked(index)
- 3.5 expanded(index)
- 3.6 pressAndHold(index)
- 4 方法
- 4.1 void collapse(index)
- 4.2 void expand(index)
- 4.3 QModelIndex indexAt( int x, int y)
- 4.4 bool isExpanded(index)
- 參考
1 簡介
提供帶有滾動條,樣式和標題部分的樹形視圖。
- import 說明
import QtQuick.Controls 1.4
- 功能引入初始版本
Qt 5.5 - 繼承
ScrollView
List of All Members for TreeView
2 屬性
2.1 currentIndex : QModelIndex
樹視圖中當前行的模型索引。
2.2 itemDelegate : Component
此屬性定義一個委託以繪製特定的單元格。
在項目委託中,您可以訪問以下特殊屬性:
styleData.selected-如果當前選中該項目
styleData.value-該項目的值或文本
styleData.textColor-項目的默認文本顏色
styleData.row-視圖行的索引
styleData.column-視圖列的索引
styleData.elideMode-列的移出模式
styleData.textAlignment-列的水平文本對齊方式
styleData.pressed-按下項目時爲true
styleData.hasActiveFocus-當行具有焦點時爲true
styleData.index-模型中當前項目的QModelIndex
styleData.depth-模型中當前項目的深度
styleData.isExpanded-展開項目時爲true
styleData.hasChildren-如果當前項目的模型索引具有或可以具有子代,則爲true
styleData.hasSibling-如果當前項目的模型索引具有同級,則爲true
示例
itemDelegate: Item {
Text {
anchors.verticalCenter: parent.verticalCenter
color: styleData.textColor
elide: styleData.elideMode
text: styleData.value
}
}
注意:由於性能原因,可以跨多個錶行回收創建的委託。 這意味着當您使用諸如styleData.row或model之類的隱式屬性時,在構造委託之後,這些值可以更改。 這意味着您不應假定在調用Component.onCompleted時內容是固定的,而應依賴於對此類屬性的綁定。
2.3 model : QAbstractItemModel
此屬性保存提供樹視圖數據的模型。
該模型提供了視圖顯示的一組數據。 TreeView接受從QAbstractItemModel類派生的模型。
2.4 rootIndex : QModelIndex
樹視圖中根項目的模型索引。 根項目是視圖頂級項目的父項目。 在視圖中僅可見從根項目下降的項目。
它的默認值是一個無效的QModelIndex,這意味着整個模型數據都由樹視圖顯示(爲該屬性分配undefined會將其重置爲默認值。)
此屬性在QtQuick.Controls 1.5中引入。
2.5 section
- section.property : string
- section.criteria : enumeration
- section.delegate : Component
- section.labelPositioning : enumeration
這些屬性確定節標籤。
ListView.view : ListView
2.6 selection : ItemSelectionModel
默認情況下,選擇模型爲null,並且僅支持單個選擇。
要使用如selectionMode中所述的不同選擇模式,必須將ItemSelectionModel設置爲選擇。
示例
TreeView {
model: myModel
selection: ItemSelectionModel {
model: myModel
}
TableViewColumn {
role: "name"
title: "Name
}
}
3 信號
3.1 activated(index)
當用戶通過鼠標或鍵盤交互激活樹中的一行時觸發。 鼠標激活通過單擊或雙擊來觸發,具體取決於平臺。
index是樹中已激活行的模型索引。
注意:僅在沒有在行或項目委託中阻止的鼠標交互時才發出此信號。
相應的處理程序爲onActivated。
3.2 clicked(index)
當用戶通過單擊單擊樹中的有效行時發出
index是樹中單擊的行的模型索引。
注意:僅當行或項目委託不接受鼠標事件時,才發出此信號。
相應的處理程序是onClicked。
3.3 collapsed(index)
當樹中的有效行摺疊而隱藏其子級時發出。
index是樹中摺疊行的模型索引。
注意:僅當行或項目委託不接受鼠標事件時,才發出此信號。
相應的處理程序爲onCollapsed。
3.4 doubleClicked(index)
當用戶雙擊有效行時觸發。
index是樹中雙擊行的模型索引。
注意:僅當行或項目委託不接受鼠標事件時,才發出此信號。
相應的處理程序是onDoubleClicked。
3.5 expanded(index)
擴展樹中的有效行並顯示其子級時發出。
index是樹中展開的行的模型索引。
注意:僅當行或項目委託不接受鼠標事件時,才發出此信號。
相應的處理程序爲onExpanded。
3.6 pressAndHold(index)
當用戶按住樹中的有效行時觸發。
index是樹中按下的行的模型索引。
注意:僅當行或項目委託不接受鼠標事件時,才發出此信號。
相應的處理程序是onPressAndHold。
4 方法
4.1 void collapse(index)
摺疊索引指定的模型項。
另請參見摺疊和isExpanded。
4.2 void expand(index)
展開索引指定的模型項。
另請參見expand和isExpanded。
4.3 QModelIndex indexAt( int x, int y)
返回內容座標中x,y點處可見行的模型索引。 如果在指定的點沒有可見的行,則返回無效的QModelIndex。
注意:僅在組件完成後才應調用此方法。
4.4 bool isExpanded(index)
如果索引處的模型項已擴展,則返回true;否則,返回true。 否則返回false。
另請參見擴大和擴大。
參考
1、TreeView QML Type
2、Qt qml treeview 樹控件
3、QML樹控件TreeView的使用(上)
4、在QML樹控件TreeView的使用(下)
5、List of All Members for TreeView
6、QML TreeModel and TreeView
7、QML中樹形控件TreeView的最基本、最簡單粗暴的、一看秒懂的實現方法,之一
8、示例
9、ListView QML Type
10、good-QML自定義一個TreeView,使用ListView遞歸