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递归

发布了496 篇原创文章 · 获赞 601 · 访问量 155万+

猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/103850081