QTreeViewClass
QTreeView提供了一种默认的model/view实现了tree view 描述
QTreeView实现一种树状表达的项目模型。这个类是用来提供标准分级列表,以前是通过QListView类提供的,但使用QT提供的方法model/view体系结构更灵活
QTreeView是Model/View之一,也是QT model/view framework的一部分
QTreeView通过QAbstractltemView实现了那个接口允许它通过model获得 QAbstractItemModel的数据
它是一种简单的tree view结构。在下面的列子里,一个目录的内容由QFileSystemModel提供并显示树:
model/view架构确保树视图的内容更容易更新
Items的孩子可以被expanded(显示),也可以被collapsed(隐藏)。当状态改变collapsed()或者expanded()信号就会被触发
Headers在tree view是通过QHeaderView构造的,可以通过使用header()->hide()隐藏起来。注意,每个头配置stretchLastSection,并设置其为true,确保视图不浪费任何空间的分配给它的头,如果这个值设置为true,该属性将覆盖调整模式设置在最后一节头
默认情况下,使用QHeaderView的setSectionsMovable()函数限制这些列的运动(在tree view中所有的列除了header)关于重新安排部分的更多信息,请参见Moving Header Sections
Key Bindings
QTreeView支持设置Key Bindings,允许用户navigate,下面是有关的项:
属性
allCloumnShowFocus:bool
这个属性保存item是否应该使用所有列显示键盘焦点。如果这个属性是真的所有列将显示焦点,否则只有一列将显示焦点 存取函数
Bool allCloumnShowFocus()
Void setallCloumnShowFocus(bool enable)
animated:bool
这个属性保存动画是否启用 存取函数
Bool isAnimated()
Void setAnimated(bool enable)
autoExpandDelay:int
这个属性保存了一个项目open during 一个拖放操作的延迟时间
这个属性保存的时间以毫秒为单位,用户必须等待前一个节点,节点会自动打开或关闭。如果时间设置小于0,它将不会被激活。默认值为-1 存取函数
Int autoExpandDelay()
Void setAutoExpandDelay(int delay)
expandsOnDoubleClick:bool
这个属性保存该项目是否能够通过双击扩展 存取函数
Bool expandsOnDoubleClick()
Void setexpandsOnDoubleClick(bool enable)
headerHidden:bool
这个属性保存header显示OR No 存取函数
Bool isHeaderHidden()
Void setHeaderHidden(bool hide)
indentation:int
这个属性保存了tree view中的缩进的item 存取函数 Int indentation()
Void setIndentation(int i) Void resetIndentation()
itemsExpandable:bool
这个属性保存item是否可以被用户扩展 默认值为true 存取函数
Bool itemsExpandable()
Void setItemsExpandable(bool enable)
rootlsDecorated:bool
这个属性保存是否显示ecpanding和collapse的顶级项目 默认值为true 存取函数
Bool rootlsDecorated()
Void setrootlsDecorated(bool show)
sortingEnabled:bool
这个属性保存排序是否启用 默认为false
注意:为了避免性能问题,建议启用排序后将item插入到树中。或者,你也可以插入item列表之前将条目插入到树中
存取函数
Bool issortingEnabled()
Void setsortingEnabled(bool enable)
uniformRowHeights:bool
这个属性保存树状视图中的所有item是否有相同的高度 默认值为false
如果是保证视图中的所有项目都有相同的高度这个属性应该设置为true。这使得视图做更优化一些 存取函数
Bool uniformRowHeights()
Void setuniformRowHeights(bool uniform)
wordWrap:bool
这个属性保存条目的文本换行例政策
如果是真的,那么这个属性项的文本包装在必要时word-breaks;否则它不是包装。该属性默
认是假的 存取函数 Bool wordWrap()
Void setWordWrap(bool on) 函数
QTreeView(QWidget*parent = 0) ~QTreeView()
Void collapse(const QModelIndex &index) [槽] 更具给定的索引collapses(隐藏) model
Void collapseAll() [槽] Collapse(隐藏) 所有的item
Void collapsed(const QModelIndex &index) [信号] 当item根据给定的index 被collapse(隐藏)触发该信号
Int columnAt(int x)
返回tree view的列header覆盖被给的X坐标
Void columnCountChange(int oldCount ,int newCount) [protected slot] 通知的树视图树视图中的列的数量已经从oldCount 更改到newCount
Void columnMoved() [protected slot]
This slot is called whenever a column has been moved
Void columnResize(int column,int oldSize,int newSize)[ protected slot] 当在headerd的列改变时被调用
Int columnViewPosition(int column) 返回在viewport列的水平位置
Int columnWidth(int column) 返回列的宽度
Void currentChanged(const QModelIndex ¤t,const QModelIndex& previous)[virtual protected] 重载QAbstractItemView::cyrrentChanged()
Void dataChanged(const QModelIndex & topLeft,const QModelIndex &bottomRight,const QVector
重载QAbstractItemView::dataChange
void dragMoveEvent(QDragMoveEvent * event) 重载QWidget::dragMoveEvent()
Void drawBranches(QPainter *painter,const ARect & rect,const QModelIndex &index) 使用给定的painter ,在指定的矩形中画branches
Void drawRow(QPainter*painter,const QStyleOptionViewItem &option,const QModelIndex &index) 使用给定的painter画视图,其中包括模型中行项的指数
Void drawTree(QPainter*painter,const QRegion ®ion) 用指定的painter画tree的部分(region交叉的部分)
Void expand(const QModelIndex &index)[槽] 根据索引扩展指定的item
Void expandAll()[槽] 扩展所有的item
Void expandToDepth(int depth) [槽] 根据depth扩展所有可以扩展的item
Void eapanded(const QModelIndex & index) 当指定索引项扩展触发信号
QHeaderView *header() const 返回tree view的header