QT:控制元件精講(三)單元元件 Item Widgets
Qt Creator有3種Item Widgets。如下圖:
Item Widgets介紹
控制元件類 控制元件名 中文名
QListWidget List Widget 列表單元控制元件
QTreeWidget Tree Widget 樹形單元控制元件
QTableWidget Table Widget 表格單元控制元件
一、ListWidget控制元件
1.控制元件位置:Item Widget->ListWidget
2.控制元件介紹:ListWidget繼承自QListView類,基於Item的列表控制元件。
3.控制元件屬性設定選項:
(1)name:該控制元件對應原始碼內的名稱
(2)font:設定該表格內部的字型
(3)count:保持專案的數目
(4)currentRow:保持當前專案的行
(5)sortingEnabled:是否對item排序
4.常用成員函式:
(1)QListWidget::QListWidget(QWidget *parent = 0)
構造父物件為parent的ListWidget
(2)void QListWidget::addItem(QListWidgetItem *item)
新增專案item
(3)void QListWidget::addItem(const QString &label)
新增一個新的專案,在新新增的專案中新增label標籤
(4)void QListWidget::addItems(const QStringList &labels)
新增一列專案
(5)void QListWidget::clear()[slot]
清除該ListWidget中的所有專案
(6)QListWidgetItem *QListWidget::currentItem()const
返回當前活動的專案
(7)void QListWidget::editItem(QListWidgetItem *item)
如果專案item是可編輯的,開始編輯專案item
(8)QList<QListWidgetItem *>QListWidget::findItems(const QString &text,Qt::MatchFlags flags)const
查詢匹配字串text的專案,並返回查詢結果
(9)void QListWidget::insertItem(int row,QListWidgetItem * item)
在行row處插入專案item
(10)void QListWidget::insertItem(int row,const QString &label)
這是一個過載函式,功能同(9),在行row處插入標籤為label的新專案
(11)void QListWidget::insertItem(int row,const QStringList &labels)
在行row處插入一列專案
(12)QListWidgetItem *QListWidget::item(int row)const
返回行row處的專案,如果行row處沒有專案則返回0
(13)QListWidgetItem *QListWidget::itemAt(const QPoint &p)const
返回點p處的專案
(14)QListWidgetItem *QListWidget::itemAt(int row,int y)const
返回座標(x,y)處的專案
(15)QWidget *QListWidget::itemWidget(QListWidgetItem *item)const
返回專案item處顯示的控制元件
(16)QListWidgetItem *QListWidget::takeItem(int row)
移除行row處的專案,並返回專案控制元件
(17)void QListWidget::removeItemWidget(QListWidgetItem *item)
移除專案item處的控制元件
(18)int QListWidget::row(const QListWidgetItem *item)cosnt
返回專案item所在的行
(19)QList<QListWidgetItem*> QListWidget::selectedItems()const
返回所有被選中的專案的控制元件
(20)void QListWidget::setcurrentItem(QListWidgetItem *item)
設定專案item為當前專案
(21)void QListWidget::setItemWidget(QListWidgetItem *item,QWidget *widget)
設定控制元件widget為專案item的顯示控制元件
(22)void QListWidget::setItemWidget(QListWidgetItem *item,QWidget *widget)
(23)void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)
把專案按照order進行排序
二、TreeWidget控制元件
1.控制元件位置:Item Widget->TreeWidget
2.控制元件介紹:樹形單元控制元件,繼承自QTreeView類,是樹形檢視使用預定義的模型,他也是基於模型/檢視結構的控制元件,為方便開發人員使用樹形檢視,可以使用這個控制元件來建立簡單地樹形結構列表
3.控制元件屬性設定選項:
(1)name:同上
(2)font:同上
(3)columnCount:儲存該TreeWidget的列數
4.常用成員函式
(1)QTreeWidget::QTreeWidget(QWidget *parent = 0)
構造一個父物件為parent的TreeWidget
(2)void QTreeWidget::addTopLevelItem(QTreeWidgetItem * item)
在該TreeWidget中追加item為頂級專案
(3)void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem*> &items)
把items中的專案作為頂級專案追加到該TreeWidget中
(4)void QTreeWidget::clear()[slot]
清除該TreeWidget中的所有專案
(5)void QTreeWidget::collapseItem(const QTreeWidgetItem *item)[slot]
摺疊專案item
(6)int QTreeWidget::currentColumn()const
返回當前活動列
(7)QTreeWidgetItem *QTreeWidget::currentItem()const
返回當前活動專案
(8)void QTreeWidget::editItem(QTreeWidgetItem *item,int column = 0)
如果列column的item是可編輯的,開始編輯
(9)void QTreeWidget::expandItem(const QTreeWidgetItem *item)[slot]
展開專案
(10)QList<QTreeWidgetItem*> QTreeWidget::findItems(const QString &text,Qt::MatchFlags flags,int column = 0)const
查詢匹配字串的text的專案,並返回查詢結果
(11)QTreeWidgetItem *QTreeWidget::headerItem()const
返回頭專案
(12)QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item,int column = 0)const [protected]
返回列column的專案item模型索引
(13)int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item)const
返回頂級專案item的模型索引,如果item不存在返回-1
(14)int QTreeWidget::sortColumn()const
返回排序的列
(15)void QTreeWidget::sortItems(int column,Qt::SortOrder order)
對列column的專案按照order進行排序
(16)QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item)const
返回item的上一個專案
(17)QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const
返回點p處的專案
(18)QTreeWidgetItem *QTreeWidget::itemAt(int x,int y)const
返回座標(x,y)處的專案
(19)void QTreeWidget::setItemWidget(QTreeWidgetItem *item,int column,QWidget *widget)
設定控制元件widget為專案item的顯示控制元件,專案item在列column中
(20)QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item)const
返回item的下一個專案
(21)QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item,int column)const
返回列column中的專案item顯示控制元件
(22)void QTreeWidget::removeItemWidget(QTreeWidgetItem *item,int column)
移除列column中的專案item的顯示控制元件
(23)QList<QTreeWidgetItem *> QTreeWidget::selectItems()const
返回所有選中狀態的專案
(24)void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)
設定item為當前專案
(25)void QTreeWidget::setCurrentItem(QTreeWidgetItem *item,int column)
設定列column的專案item為當前專案
(26)void QTreeWidget;:setHeaderItem(QTreeWidgetItem *item)
設定item為該TreeWidget的頭專案
(27)void QTreeWidget::setHeaderLabel(const QString &label)
設定label為頭標題
(28)QTreeWidgetItem *QTreeWidget::topLevelItem(int index)cosnt
返回所有index的頂級專案
三、TableWidget控制元件
1.控制元件位置:Item Widget->Table Widget
2.控制元件介紹:表格單元控制元件
3.控制元件屬性設定選項:
(1)name:同上
(2)font:同上
(3)columnCount:儲存列的數目
(4)rowCount:儲存行的數目
4.常用成員函式
(1)QTableWidget::QTableWidget(QWidget * parent = 0)
構造一個父物件為parent的TableWidget
(2)QTableWidget::QTableWidget(int rows,int columns,QWidget *parent = 0)
構造一個rows行,columns列,父物件為parent的TableWidget控制元件
(3)QWidget *QTableWidget::cellWidget(int row,int column)const
返回行row,列column的單元格處的控制元件
(4)void QTableWidget::clear()[slot]
刪除該TreeWidget中的所有專案
(5)void QTableWidget::clearContents()[slot]
刪除該TreeWidget中除了header外的所有專案
(6)int QTableWidget::column(const QTableWidgetItem *item)const
返回專案item所在的列
(7)int QTableWidget::currentColumn()const
返回當前活動的列
(8)QTableWidgetItem *QTableWidget::currentItem()const
返回當前活動的專案
(9)int QTableWidget::currentRow()const
返回當前活動的行
(10)void QTableWidget::editItem(QTableWidgetItem *item)
如果item是可編輯的,開始編輯item
(11)QList<QTableWidgetItem *> QTableWidget::findItems(const QString &text,Qt::MatchFlags flags)const
查詢匹配字串text的專案,並返回查詢結果
(12)void QTableWidget::insertColumn(int column)[slot]
在列column處插入新列
(13)void QTableWidget::insertRow(int row)[slot]
在行row處插入新行
(14)QTableWidgetItem *QTableWidget::item(int row,int column)const
返回行row、列column處的專案
(15)QTableWidgetItem *QTableWidget::itemAt(const QPoint &point)const
返回點point處的專案
(16)QTableWidgetItem *QTableWidget::itemAt(int ax,int ay)const
返回座標(ax,ay)處的專案
(17)void QTableWidget::removeCellWidget(int row,int column)
移除行row、列column單元格處的顯示控制元件
(18)void QTableWidget::removeColumn(int column)[slot]
移除列column
(19)void QTableWidget::removerRow(int row)[slot]
移除行row
(20)int QTableWidget::row(const QTableWidgetItem *item)cosnt
返回item的行
(21)QList<QTableWidgetItem *> QTableWidget::selectedItems()
返回所有選中狀態的專案
(22)void QTableWidget::setCellWidget(int row,int column,QWidget *widget)
設定行row、列column處的顯示控制元件為widget。
(23)void QTableWidget::setCurrentCell(int row,int column)
設定行row,列column處的單元格為當前活動單元格
(24)void QTableWidget::setCurrentItem(QTableWidgetItem *item)
設定專案item為當前活動專案
(25)void QTableWidget::setHorizontalHeaderItem(int column,QTableWidgetItem *item)
設定專案item為列column的水平頭專案,功能同setVerticalHeaderItem()
(26)void QTableWidget::setHorizontalHeaderLabels(const QStringList *labels)
設定水平標題為labels,功能同setVerticalHeaderLabels()
(27)void QTableWidget::setItem(int row,int column,QTableWidgetItem *item)
設定行row、列column的單元格的專案為item
(28)void QTableWidget::sortItems(int column,Qt::SortOrder order = Qt::AscendingOrder)
對列column按照order進行排序
(29)QTableWidgetItem *QTableWidget::takeHorizonalHeaderItem(int column)
移除列column的水平頭專案,功能同takeVerticalHeaderItem()
(30)QTableWidgetItem *QTableWidget::takeItem(int row,int column)
移除行row、列column單元格處的專案
(31)QTableWidgetItem *QTableWidget::verticalHeaderItem(int row)const
返回行row的垂直頭專案