欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt 5.12学习笔记--控件TreeView介绍

程序员文章站 2022-07-12 15:34:52
...

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

相关标签: Qt quick