Qt 5.12--控件TreeView介紹

1 簡介

提供帶有滾動條,樣式和標題部分的樹形視圖。

  • import 說明
import QtQuick.Controls 1.4

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遞歸

發佈了494 篇原創文章 · 獲贊 558 · 訪問量 144萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章