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.控件屬性設定:
4.常用成員函數:(1)name:該控件對應源代碼中的名稱。
(2)font:設定視圖内字型。
(3)batchSize:如果将layoutMode設定為Batched,則這個屬性儲存批量處理的規格。
(4)layoutModel:項目的布局模式。
(5)modeColumn:模型中可見的類,預設情況下,置為0,表述模型中第一列可見。
(6)viewModel:儲存該ListView的視圖模型。
(1)QListView::QListView(QWidget *parent = 0)
構造一個父對象為parent的ListView。
(2)void QListView::currentChanged(const QModelIndex ¤t,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.控件屬性設定選項:
4.常用成員函數:(1)name:該控件對應源代碼中的名稱。
(2)font:設定該控件内所有文本的字型。
(3)sortingEnable:項目是否排序。
(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 ¤t,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 ®ion)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.控件屬性設定選項:
4.常用成員函數(1)name:該控件對應源代碼中的名稱
(2)font:設定表格内部的字型
(3)cornerButtonEnabled:左上角的按鈕是否有用
(4)gridStyle:表格的格式
(5)showGrid:是否顯示網格,值為true,顯示,否則不顯示
(6)sortingEnabled:是否對項目排序
(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 ¤t,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 ¤t,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的預覽元件。