QTreeView

更新时间:2024-06-18 14:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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&roles=QVector(int))

重载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

void hideColumn(int column)[槽] 隐藏指定的列

int horizontalOffset() const [virtual protected] 重载QAbstractItemView::horizontalOffset()

QModelIndex indexAbove(const QModelIndex & index) const 返回项above index模型指数

QModelIndex indexAt(const QPoint & point) const 重载QAbstractItemView::indexAt()

QModelIndex indexBelow(const QModelIndex & index) const 返回项below index模型指数

int indexRowSizeHint(const QModelIndex & index) const 通过索引返回提示行

bool isColumnHidden(int column) const 返回指定的列是否被隐藏

bool isExpanded(const QModelIndex & index) const 根据ModelIndex返回item是否可被扩展

bool isFirstColumnSpanned(int row, const QModelIndex & parent) const 返回true,如果项目在给定行第一列的父母是跨越所有列;否则返回false

bool isIndexHidden(const QModelIndex & index) const 重载QAbstractItemView::isIndexHidden()

bool isRowHidden(int row, const QModelIndex & parent) const 列是否可被隐藏

void resizeColumnToContents(int column) 调整列的大小,内容的大小

int rowHeight(const QModelIndex & index) const 返回一行的高度由给定的指数表示

void rowsRemoved(const QModelIndex & parent, int start, int end) 通知视图,从一开始行到最后一行的行包含了给定的父模型项目

void setColumnHidden(int column, bool hide) 设置指定的列隐藏

void setColumnWidth(int column, int width) 设置指定列的宽

void setExpanded(const QModelIndex & index, bool expanded) 根据扩展的价值设置项被指数Expand或collapse

void setFirstColumnSpanned(int row, const QModelIndex & parent, bool span) 如果span为真,排在第一列的item与给定的parent将跨所有列,否则显示所有项目的行。

void setRowHidden(int row, const QModelIndex & parent, bool hide) 如果hide为TRUE,指定的row和parent被隐藏,否则显示

void setTreePosition(int index) 根据index设置tree的position

void showColumn(int column)[槽] 显示给定的列

void sortByColumn(int column, Qt::SortOrder order) 对给定的列和值排序

int treePosition() const

返回逻辑坐标的设置。如果返回-1说明the tree placed on the visual index 0

本文来源:https://www.bwwdw.com/article/epl3.html

Top