Qt 5.12学习笔记--控件TreeView介绍
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递归
上一篇: Object 对象的属性和方法
下一篇: C++学习笔记---this指针
推荐阅读
-
Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍
-
Qt学习笔记(自定义控件)
-
Qt 5.12学习笔记--QML and C++ 混编示例
-
Qt 5.12学习笔记--Item详解
-
Qt 5.12学习笔记--控件TreeView介绍
-
Qt学习笔记11:自定义控件增加属性并通过qss设置样式
-
Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍
-
QT学习笔记3:QT中基本控件的接口(QPushButton的简单实用)
-
Python:GUI之tkinter学习笔记1控件的介绍及使用