QT有三種單元組件,分別爲列表單元組件QListWidget、樹形單元組件QTreeWidget、表格單元組件QTableWidget。ide
QListWidget列表單元組件繼承自QListView,是基於單元的列表組件。QListWidget能夠顯示一個清單,清單中的每一個項目是QListWidgetItem的一個實例,每一個項目能夠經過QListWidgetItem來操做。能夠經過QListWidgetItem來設置每一個項目的圖像與文字。函數
QListWidget列表單元組件屬性設置選項:字體
A、name:組件對應源代碼內的名稱ui
B、font:設置表格內部的字體spa
C、count:保持項目的數目對象
D、currentRow:保持當前項目的行排序
E、sortingEnabled:是否對item排序繼承
QListWidget::QListWidget(QWidget *parent = 0)索引
構造父對象爲parent的ListWidgetip
void QListWidget::addItem(QListWidgetItem *item)
添加項目item
void QListWidget::addItem(const QString &label)
添加一個新的項目,在新添加的項目中添加label標籤
void QListWidget::addItems(const QStringList &labels)
添加一列項目
void QListWidget::clear()[slot]
清除該ListWidget中的全部項目
QListWidgetItem *QListWidget::currentItem()const
返回當前活動的項目
void QListWidget::editItem(QListWidgetItem *item)
若是項目item是可編輯的,開始編輯項目item
QList<QListWidgetItem *>QListWidget::findItems(const QString &text,Qt::MatchFlags flags)const
查找匹配字符串text的項目,並返回查找結果
void QListWidget::insertItem(int row,QListWidgetItem * item)
在行row處插入項目item
void QListWidget::insertItem(int row,const QString &label)
這是一個重載函數,功能同(9),在行row處插入標籤爲label的新項目
void QListWidget::insertItem(int row,const QStringList &labels)
在行row處插入一列項目
QListWidgetItem *QListWidget::item(int row)const
返回行row處的項目,若是行row處沒有項目則返回0
QListWidgetItem *QListWidget::itemAt(const QPoint &p)const
返回點p處的項目
QListWidgetItem *QListWidget::itemAt(int row,int y)const
返回座標(x,y)處的項目
QWidget *QListWidget::itemWidget(QListWidgetItem *item)const
返回項目item處顯示的控件
QListWidgetItem *QListWidget::takeItem(int row)
移除行row處的項目,並返回項目控件
void QListWidget::removeItemWidget(QListWidgetItem *item)
移除項目item處的控件
int QListWidget::row(const QListWidgetItem *item)cosnt
返回項目item所在的行
QList<QListWidgetItem*> QListWidget::selectedItems()const
返回全部被選中的項目的控件
void QListWidget::setcurrentItem(QListWidgetItem *item)
設置項目item爲當前項目
void QListWidget::setItemWidget(QListWidgetItem *item,QWidget *widget)
設置控件widget爲項目item的顯示控件
void QListWidget::setItemWidget(QListWidgetItem *item,QWidget *widget)
void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)
把項目按照order進行排序
#include <QtGui/QApplication> #include <QWidget> #include <QVBoxLayout> #include <QListWidget> #include <QListWidgetItem> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget* widget = new QWidget; QListWidget* listWidget = new QListWidget(widget); QVBoxLayout* layout = new QVBoxLayout; QListWidgetItem* lst1 = new QListWidgetItem("data", listWidget); QListWidgetItem* lst2 = new QListWidgetItem("decision", listWidget); QListWidgetItem* lst3 = new QListWidgetItem("document", listWidget); QListWidgetItem* lst4 = new QListWidgetItem("process", listWidget); QListWidgetItem* lst5 = new QListWidgetItem("printer", listWidget); listWidget->insertItem(1, lst1); listWidget->insertItem(2, lst2); listWidget->insertItem(3, lst3); listWidget->insertItem(4, lst4); listWidget->insertItem(5, lst5); listWidget->show(); layout->addWidget(listWidget); widget->setLayout(layout); widget->show(); return a.exec(); }
QTreeWidget樹形單元組件繼承自QTreeView類,是樹形視圖使用預約義的模型,也是基於模型/視圖結構的組件,爲方便開發人員使用樹形視圖,能夠用來來建立簡單地樹形結構列表。經過QTreeWidget類和QTreeWidgetItem類實現樹形結構,QTreeWidgetItem類實現結點的添加。
QTreeWidget組件屬性設置選項:
A、name:組件對應源代碼內的名稱
B、font:設置表格內部的字體
C、columnCount:保存TreeWidget的列數
QTreeWidget::QTreeWidget(QWidget *parent = 0)
構造一個父對象爲parent的TreeWidget
void QTreeWidget::addTopLevelItem(QTreeWidgetItem * item)
在QTreeWidget組件中追加item爲頂級項目
void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem*> &items)
把items中的項目做爲頂級項目追加到該TreeWidget中
void QTreeWidget::clear()[slot]
清除TreeWidget中的全部項目
void QTreeWidget::collapseItem(const QTreeWidgetItem *item)[slot]
摺疊項目item
int QTreeWidget::currentColumn()const
返回當前活動列
QTreeWidgetItem *QTreeWidget::currentItem()const
返回當前活動項目
void QTreeWidget::editItem(QTreeWidgetItem *item,int column = 0)
若是列column的item是可編輯的,開始編輯
void QTreeWidget::expandItem(const QTreeWidgetItem *item)[slot]
展開項目
QList<QTreeWidgetItem*> QTreeWidget::findItems(const QString &text,Qt::MatchFlags flags,int column = 0)const
查找匹配字符串的text的項目,並返回查找結果
QTreeWidgetItem *QTreeWidget::headerItem()const
返回頭項目
QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item,int column = 0)const [protected]
返回列column的項目item模型索引
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item)const
返回頂級項目item的模型索引,若是item不存在返回-1
int QTreeWidget::sortColumn()const
返回排序的列
void QTreeWidget::sortItems(int column,Qt::SortOrder order)
對列column的項目按照order進行排序
QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item)const
返回item的上一個項目
QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const
返回點p處的項目
QTreeWidgetItem *QTreeWidget::itemAt(int x,int y)const
返回座標(x,y)處的項目
void QTreeWidget::setItemWidget(QTreeWidgetItem *item,int column,QWidget *widget)
設置控件widget爲項目item的顯示控件,項目item在列column中
QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item)const
返回item的下一個項目
QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item,int column)const
返回列column中的項目item顯示控件
void QTreeWidget::removeItemWidget(QTreeWidgetItem *item,int column)
移除列column中的項目item的顯示控件
QList<QTreeWidgetItem *> QTreeWidget::selectItems()const
返回全部選中狀態的項目
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)
設置item爲當前項目
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item,int column)
設置列column的項目item爲當前項目
void QTreeWidget;:setHeaderItem(QTreeWidgetItem *item)
設置item爲該TreeWidget的頭項目
void QTreeWidget::setHeaderLabel(const QString &label)
設置label爲頭標題
QTreeWidgetItem *QTreeWidget::topLevelItem(int index)cosnt
返回全部index的頂級項目
#include <QtGui/QApplication> #include <QWidget> #include <QTreeWidgetItem> #include <QTreeWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *widget = new QWidget; QTreeWidget *tree = new QTreeWidget(widget); tree->setColumnCount(1); //設置列數 tree->setHeaderLabel(QString::fromLocal8Bit("圖像選擇")); //設置頭的標題 QTreeWidgetItem *Item1 = new QTreeWidgetItem(tree,QStringList(QString::fromLocal8Bit("圖像1"))); QTreeWidgetItem *Item11 = new QTreeWidgetItem(Item1,QStringList(QString::fromLocal8Bit("Band1"))); //子節點1 Item1->addChild(Item11); //添加子節點 QTreeWidgetItem *Item2 = new QTreeWidgetItem(tree,QStringList(QString::fromLocal8Bit("圖像2"))); QTreeWidgetItem *Item21 = new QTreeWidgetItem(Item2,QStringList(QString::fromLocal8Bit("Band1"))); //子節點1 QTreeWidgetItem *Item22 = new QTreeWidgetItem(Item2,QStringList(QString::fromLocal8Bit("Band2"))); //子節點2 Item2->addChild(Item21); //添加子節點 Item2->addChild(Item22); tree->expandAll(); //結點所有展開 widget->show(); return a.exec(); }
QTableWidget表格單元組件繼承自QTableView,QTableView能夠使用自定義的數據模型來顯示內容,而QTableWidget則只能使用標準的數據模型,而且其單元格數據是QTableWidgetItem的對象來實現的,QTableWidgetItem用來表示表格中的一個單元格,整個表格都須要用逐個單元格構建起來。
QTableWidget組件屬性設置選項:
A、name:組件對應源代碼內的名稱
B、font:設置表格對應的字體
C、columnCount:保存列的數目
D、rowCount:保存行的數目
QTableWidget::QTableWidget(QWidget * parent = 0)
構造一個父對象爲parent的TableWidget
QTableWidget::QTableWidget(int rows,int columns,QWidget *parent = 0)
構造一個rows行,columns列,父對象爲parent的TableWidget控件
QWidget *QTableWidget::cellWidget(int row,int column)const
返回行row,列column的單元格處的控件
void QTableWidget::clear()[slot]
刪除該TreeWidget中的全部項目
void QTableWidget::clearContents()[slot]
刪除該TreeWidget中除了header外的全部項目
int QTableWidget::column(const QTableWidgetItem *item)const
返回項目item所在的列
int QTableWidget::currentColumn()const
返回當前活動的列
QTableWidgetItem *QTableWidget::currentItem()const
返回當前活動的項目
int QTableWidget::currentRow()const
返回當前活動的行
void QTableWidget::editItem(QTableWidgetItem *item)
若是item是可編輯的,開始編輯item
QList<QTableWidgetItem *> QTableWidget::findItems(const QString &text,Qt::MatchFlags flags)const
查找匹配字符串text的項目,並返回查找結果
void QTableWidget::insertColumn(int column)[slot]
在列column處插入新列
void QTableWidget::insertRow(int row)[slot]
在行row處插入新行
QTableWidgetItem *QTableWidget::item(int row,int column)const
返回行row、列column處的項目
QTableWidgetItem *QTableWidget::itemAt(const QPoint &point)const
返回點point處的項目
QTableWidgetItem *QTableWidget::itemAt(int ax,int ay)const
返回座標(ax,ay)處的項目
void QTableWidget::removeCellWidget(int row,int column)
移除行row、列column單元格處的顯示控件
void QTableWidget::removeColumn(int column)[slot]
移除列column
void QTableWidget::removerRow(int row)[slot]
移除行row
int QTableWidget::row(const QTableWidgetItem *item)cosnt
返回item的行
QList<QTableWidgetItem *> QTableWidget::selectedItems()
返回全部選中狀態的項目
void QTableWidget::setCellWidget(int row,int column,QWidget *widget)
設置行row、列column處的顯示控件爲widget。
void QTableWidget::setCurrentCell(int row,int column)
設置行row,列column處的單元格爲當前活動單元格
void QTableWidget::setCurrentItem(QTableWidgetItem *item)
設置項目item爲當前活動項目
void QTableWidget::setHorizontalHeaderItem(int column,QTableWidgetItem *item)
設置項目item爲列column的水平頭項目,功能同setVerticalHeaderItem()
void QTableWidget::setHorizontalHeaderLabels(const QStringList *labels)
設置水平標題爲labels,功能同setVerticalHeaderLabels()
void QTableWidget::setItem(int row,int column,QTableWidgetItem *item)
設置行row、列column的單元格的項目爲item
void QTableWidget::sortItems(int column,Qt::SortOrder order = Qt::AscendingOrder)
對列column按照order進行排序
QTableWidgetItem *QTableWidget::takeHorizonalHeaderItem(int column)
移除列column的水平頭項目,功能同takeVerticalHeaderItem()
QTableWidgetItem *QTableWidget::takeItem(int row,int column)
移除行row、列column單元格處的項目
QTableWidgetItem *QTableWidget::verticalHeaderItem(int row)const
返回行row的垂直頭項目
#include <QtGui/QApplication> #include <QTableWidget> #include <QTableWidgetItem> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTableWidget *tablewidget = new QTableWidget(10,5); tablewidget->resize(350, 200); //設置表格 QStringList header; header<<"Month"<<"Description"; tablewidget->setHorizontalHeaderLabels(header); tablewidget->setItem(0,0,new QTableWidgetItem("Jan")); tablewidget->setItem(1,0,new QTableWidgetItem("Feb")); tablewidget->setItem(2,0,new QTableWidgetItem("Mar")); tablewidget->setItem(0,1,new QTableWidgetItem("Jan's month")); tablewidget->setItem(1,1,new QTableWidgetItem("Feb's month")); tablewidget->setItem(2,1,new QTableWidgetItem("Mar's month")); tablewidget->show(); return a.exec(); }