QT:控件精讲(二)单元视图Item Views

    Qt Creator有4种Item Views。如图

    View Widget的Qt类和名称介绍如下表:

    控件类     控件名     中文名
    QListView     ListView     列表视图
    QTreeView     TreeView     树形视图
    QTableView     TableView     表格
    QColumnView     ColumnView     列视图

    一、ListView控件

    1.控件位置:Item Views->ListView

    2.控件介绍:列表视图,继承自QAbstractItemView。ListView是基于模型的列表/图标视图,为Qt的模型/视图结构提供了更灵活的方式。

    3.控件属性设置:

        (1)name:该控件对应源代码中的名称。

        (2)font:设置视图内字体。

        (3)batchSize:如果将layoutMode设置为Batched,则这个属性保存批量处理的规格。

        (4)layoutModel:项目的布局模式。

        (5)modeColumn:模型中可见的类,默认情况下,置为0,表述模型中第一列可见。

        (6)viewModel:保存该ListView的视图模型。

    4.常用成员函数:

        (1)QListView::QListView(QWidget *parent = 0)

        构造一个父对象为parent的ListView。

        (2)void QListView::currentChanged(const QModelIndex &current,const QModelIndex &previous)[virtual protected]

        把current定位当前项目,previous是以前的项目。

        (3)void QListView::dataChanged(const QModelIndex &topLeft,const QModelIndex &bottomRight)[virtual protected]

        更改模型中项目topLeft到bottomRight。

        (4)QModelIndex QListView::indexAt(const QPoint &p)const [virtual]

        返回坐标点p处项目的模型索引。

        (5)void QListView::rowsInserted(const QModelIndex &parent,int start,int end)[virtual protected]

        插入新行,新行的父母是parent,从start到end的所有项目。

        (6)QModelIndexList QListView::selectedIndexes()const[virtual protected]

        返回所有选中的非隐藏的项目的模型索引。

    二、TreeView控件

    1.控件位置:Item View->TreeView

    2.控件介绍:树形视图,继承自QAbstractItemView,是基于模型的列表/图标视图,也是Qt模型/视图框架的一部分。

    3.控件属性设置选项:

        (1)name:该控件对应源代码中的名称。

        (2)font:设置该控件内所有文本的字体。

        (3)sortingEnable:项目是否排序。

    4.常用成员函数:

        (1)QTreeView::QTreeView(QWidget *parent = 0)

        构造一个父对象为parent的TreeView。

        (2)void QTreeView::collapse(const QModena &index)[slot]

        折叠模型索引为index的项目

        (3)void QTreeView::collapseAll()[slot]

        折叠所有项目

        (4)int QTreeView::columnAt(int x)const

        返回x坐标处的列。

        (5)void QTreeView::columnCountChanged(int oldCount,int newCount)[protected slot]

        通知树形视图中的列数,从oldCount改变到newCount。

        (6)void QTreeView::currentChanged(const QModelIndex &current,const QModelIndex &previous)[virtual protected]

        把current定为当前项目,previous是以前的当前项目

        (7)void QTreeView::dataChanged(const QModelIndex &topLeft,const QModelIndex &bottomRight)[virtual]

        更改模型中项目topLeft到bottomRight。

        (8)void QTreeView::drawBranches(QPainter *painter,const QRect &rect,const QModelIndex &index)const [virtual protected[

        在项目index的同一行,用painter绘制指定的rect矩形分支。

        (9)void QTreeView::drawRow(QPainter *painter,const QStyleOptionViewItem &option,const QModelIndex &index)const [virtual protected]

        用painter绘制新行,新行包含模型索引 为index的项目,option是如何显示项目。

        (10)void QTreeView::drawTree(QPainter *painter,const QRegion &region)const [protected]

        用painter在区域region绘制树

        (11)void QTreeView::expand(const QModelIndex &index)[slot]

        展开模型索引为index的项目。

        (12)void QTreeView::expandAll()[slot]

        展开所有的项目

        (13)void QTreeView::expandToDepth(int depth) [slot]

        展开树形视图中的项目,深度为depth

        (14)QHeaderView *QTreeView::header()const

        返回该树形视图的header

        (15)QModelIndex QTreeView::indexAbove(const QModelIndex &index)const

        返回模型索引index的上一个索引

        (16)QModelIndex QTreeView::indexAt(const QPoint &point)const [virtual]

        返回点point处项目的模型索引

        (17)QModelIndex QTreeView::indexBelow(const QModelIndex &index)const

        返回模型索引index的下一个索引

        (18)bool QTreeView::isExpanded(const QModelIndex &index)const

        如果模型索引index处的项目是展开着的,返回true,否则返回false

        (19)void QTreeV::rowsInserted(const QModelIndex &parent,int start,int end)[virtual protected]

        插入新行,新行的父母是parent,包括从start到end的所有项目。

        (20)void QTreeView::rowsRemoved(const QModelIndex &parent,int start,int end)[protected slot]

        删除行,行的父母是parent,包括从start到end的所有项目

        (21)void QTreeView::selectAll()[virtual]

        设置所有的项目都是选择状态

        (22)QModelIndexList QTreeView::selectedIndexes()const [virtual protected]

        返回所有选中和非隐藏的项目的模型索引

        (23)void QTreeView::setHeader(QHeaderView *header)

        设置该TreeView的标题为header

        (24)void QTreeView::sortByColumn(int column,QT::SortOrder order)

        对列column按order进行排序

    三、TableView控件

    1.控件位置:Item View->TableView

    2.控件介绍:表格视图,是一个模型/视图结构的表视图实现,用来显示模型的项目。它提供了QTable类提供的标准表格。是Qt的模型/视图框架的一部分。由QAbstractItemView类定义的接口来实现,使其能够显示由QAbstractItemModel类派生的模型提供的数据。

    3.控件属性设置选项:

        (1)name:该控件对应源代码中的名称

        (2)font:设置表格内部的字体

        (3)cornerButtonEnabled:左上角的按钮是否有用

        (4)gridStyle:表格的格式

        (5)showGrid:是否显示网格,值为true,显示,否则不显示

        (6)sortingEnabled:是否对项目排序

    4.常用成员函数

        (1)QTableView::QTableView(QWidget *parent = 0)

        构造一个父对象为parent的TableView

        (2)void QTableView::clearSpans()

        删除该TableView中的所有行和列的跨度

        (3)int QTableView::columnAt(int x)const

        返回坐标x处的列,如果坐标处没有项目则返回-1

        (4)int QTableView::columnSpan(int row,intcolumn)const

        返回行row、列column处的行跨度

        (5)void QTableView::currentChanged(const QModelIndex &current,const QModelIndex &previous)[virtual protected]

        把current指定为当前项目,previous是以前的项目

        (6)QHeaderView *QTableView::horizontalHeader()const

        返回该TableView的水平标题

        (7)QModelIndex QTableView::indexAt(const QPoint *pos)const [virtual]

        返回点pos处项目的模型索引

        (8)int QTableView::rowAt(int y)const

        返回坐标y处的行,如果坐标处没有项目则返回-1

        (9)int QTableView::rowSpan(int row,int column)const

        返回行row、列column处的列跨度

        (10)void QTableView::selectcolumn(int column)[slot]

        设置列column为选中状态

        (11)void QTableView::selectRow(int row)[slot]

        设置行row为选中状态

        (12)QModelIndexList QTableView::selectedIndexes()const [virtual protected]

        返回所有选中和非隐藏的项目的模型索引

        (13)void QTableView::setHorizontalHeader(QHeaderView *header)

        设置该TableView的水平标题为header

        (14)void QTableView::setSpan(int row,int column,int rowSpanCount,int columnCount)

        设置行row、列column处的行跨度为rowSpanCount、列跨度为columnSpanCount

        (15)void QTableView::setVerticalHeader(QHeaderView *header)

        设置该TableView的垂直标题为header

        (16)void QTableView::showColumn(int column)[slot]

        显示列column

        (17)void QTableView::showRow(int row)[slot]

        显示行row

        (18)QHeaderView *QTableView::verticalHeader()const

        返回TableView的垂直标题

    四、ColumnView控件
    1.控件位置:Item View->ColumnView
    2.控件介绍:列视图
    3.控件属性设置选项:

        (1)name:该控件对应源代码中的名字
        (2)font:设置表格内部的字体

    4.常用成员函数

        (1)QColumnView::QColumnView(QWidget *parent = 0)

        构造一个父对象为parent的ColumnView

        (2)QAbstractItemView * QColumnView::createColumn(const QModelIndex *index)[virtual protected]

        index是视图的根模型索引,返回新的视图

        (3)void QColumnView::currentChanged(const QModelIndex &current,const QModelIndex &previous)[virtual protected]

        把current指定为当前项目,previous是以前的当前项目

        (4)QModelIndex QColumnView::indexAt(cosnt QPoint &point)const [virtual]

        返回点pos处项目的索引模型

        (5)QWidget *QColumnView::previewWidget()const

        返回预览组件,如果没有则返回0

        (6)void QColumnView::rowsInserted(const QModelIndex &parent,int start,int end)[virtual protected]

        插入新行,新行的父母是parent包括从start到end的所有项目

        (7)void QColumnView::selectAll()[virtual]

        设置该ColumnView中的所有项目为选中状态

        (8)void QColumnView::setPreviewWidget(QWidget *widget)

        设置widget为该columnView的预览组件。
 

猜你喜欢

转载自blog.csdn.net/qq_25241325/article/details/84958168