QTableWidget 類

The QTableWidget 類提供具有默認模型,基於項的錶格視圖。 更多...

頭: #include <QTableWidget>
qmake: QT += widgets
繼承: QTableView

特性

公共函數

QTableWidget (QWidget * parent = Q_NULLPTR)
QTableWidget (int rows , int columns , QWidget * parent = Q_NULLPTR)
~QTableWidget ()
QWidget * cellWidget (int row , int column ) const
void closePersistentEditor (QTableWidgetItem * item )
int column (const QTableWidgetItem * item ) const
int columnCount () const
int currentColumn () const
QTableWidgetItem * currentItem () const
int currentRow () const
void editItem (QTableWidgetItem * item )
QList<QTableWidgetItem *> findItems (const QString & text , Qt::MatchFlags flags ) const
QTableWidgetItem * horizontalHeaderItem (int column ) const
QTableWidgetItem * item (int row , int column ) const
QTableWidgetItem * itemAt (const QPoint & point ) const
QTableWidgetItem * itemAt (int ax , int ay ) const
const QTableWidgetItem * itemPrototype () const
void openPersistentEditor (QTableWidgetItem * item )
void removeCellWidget (int row , int column )
int row (const QTableWidgetItem * item ) const
int rowCount () const
QList<QTableWidgetItem *> selectedItems () const
QList<QTableWidgetSelectionRange> selectedRanges () const
void setCellWidget (int row , int column , QWidget * widget )
void setColumnCount (int columns )
void setCurrentCell (int row , int column )
void setCurrentCell (int row , int column , QItemSelectionModel::SelectionFlags command )
void setCurrentItem (QTableWidgetItem * item )
void setCurrentItem (QTableWidgetItem * item , QItemSelectionModel::SelectionFlags command )
void setHorizontalHeaderItem (int column , QTableWidgetItem * item )
void setHorizontalHeaderLabels (const QStringList & labels )
void setItem (int row , int column , QTableWidgetItem * item )
void setItemPrototype (const QTableWidgetItem * item )
void setRangeSelected (const QTableWidgetSelectionRange & range , bool select )
void setRowCount (int rows )
void setVerticalHeaderItem (int row , QTableWidgetItem * item )
void setVerticalHeaderLabels (const QStringList & labels )
void sortItems (int column , Qt::SortOrder order = Qt::AscendingOrder)
QTableWidgetItem * takeHorizontalHeaderItem (int column )
QTableWidgetItem * takeItem (int row , int column )
QTableWidgetItem * takeVerticalHeaderItem (int row )
QTableWidgetItem * verticalHeaderItem (int row ) const
int visualColumn (int logicalColumn ) const
QRect visualItemRect (const QTableWidgetItem * item ) const
int visualRow (int logicalRow ) const

公共槽

void clear ()
void clearContents ()
void insertColumn (int column )
void insertRow (int row )
void removeColumn (int column )
void removeRow (int row )
void scrollToItem (const QTableWidgetItem * item , QAbstractItemView::ScrollHint hint = EnsureVisible)

信號

void cellActivated (int row , int column )
void cellChanged (int row , int column )
void cellClicked (int row , int column )
void cellDoubleClicked (int row , int column )
void cellEntered (int row , int column )
void cellPressed (int row , int column )
void currentCellChanged (int currentRow , int currentColumn , int previousRow , int previousColumn )
void currentItemChanged (QTableWidgetItem * current , QTableWidgetItem * previous )
void itemActivated (QTableWidgetItem * item )
void itemChanged (QTableWidgetItem * item )
void itemClicked (QTableWidgetItem * item )
void itemDoubleClicked (QTableWidgetItem * item )
void itemEntered (QTableWidgetItem * item )
void itemPressed (QTableWidgetItem * item )
void itemSelectionChanged ()

保護函數

virtual bool dropMimeData (int row , int column , const QMimeData * data , Qt::DropAction action )
QModelIndex indexFromItem (QTableWidgetItem * item ) const
QTableWidgetItem * itemFromIndex (const QModelIndex & index ) const
QList<QTableWidgetItem *> items (const QMimeData * data ) const
virtual QMimeData * mimeData (const QList<QTableWidgetItem *> items ) const
virtual QStringList mimeTypes () const
virtual Qt::DropActions supportedDropActions () const

重實現保護函數

virtual void dropEvent (QDropEvent * event )
virtual bool event (QEvent * e )

額外繼承成員

詳細描述

The QTableWidget 類提供具有默認模型,基於項的錶格視圖。

錶格 Widget 為應用程序提供標準錶格顯示設施。項在 QTableWidget 的提供是通過 QTableWidgetItem .

若想要使用自己數據模型的錶格,應使用 QTableView 而不是此類。

可以采用所需行數和列數構造錶格 Widget:

    tableWidget = new QTableWidget(12, 3, this);
					

另外,可以不給定大小構造錶格並稍後重置大小:

    tableWidget = new QTableWidget(this);
    tableWidget->setRowCount(10);
    tableWidget->setColumnCount(5);
					

在錶格外創建項 (沒有父級 Widget) 並插入錶格采用 setItem ():

    QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
        (row+1)*(column+1)));
    tableWidget->setItem(row, column, newItem);
					

若想要在錶格 Widget 中啓用排序,在采用項填充後履行這,否則排序可能乾擾插入次序 (見 setItem () 瞭解細節)。

可以賦予錶格水平和垂直 Header (頭部) 兩者。創建 Header (頭部) 的最簡單方式是提供字符串列錶為 setHorizontalHeaderLabels () 和 setVerticalHeaderLabels () 函數。這些將為錶格列和行提供簡單正文 Header (頭部)。通常,可以從錶格外構造現有錶格項,以創建更完備的 Header (頭部)。例如,可以構造具有圖標和對齊文本的錶格項,並將它用作特定列的 Header (頭部):

    QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
    cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
    cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);
					

可以查找錶格行數采用 rowCount (),和列數采用 columnCount ()。可以清零錶格采用 clear () 函數。

另請參閱 QTableWidgetItem , QTableView ,和 模型/視圖編程 .

特性文檔編製

columnCount : int

此特性保持錶格列數

默認情況下,對於未采用行/列數構造的錶格,此特性包含 0 值。

訪問函數:

int columnCount () const
void setColumnCount (int columns )

rowCount : int

此特性保持錶格行數

默認情況下,對於未采用行/列數構造的錶格,此特性包含 0 值。

訪問函數:

int rowCount () const
void setRowCount (int rows )

成員函數文檔編製

QTableWidget:: QTableWidget ( QWidget * parent = Q_NULLPTR)

創建新的錶格視圖采用給定 parent .

QTableWidget:: QTableWidget ( int rows , int columns , QWidget * parent = Q_NULLPTR)

創建新的錶格視圖采用給定 rows and columns ,和采用給定 parent .

QTableWidget:: ~QTableWidget ()

銷毀此 QTableWidget .

[signal] void QTableWidget:: cellActivated ( int row , int column )

此信號發射,當單元格指定通過 row and column 被激活

該函數在 Qt 4.1 引入。

[signal] void QTableWidget:: cellChanged ( int row , int column )

此信號被發射每當單元格項數據指定通過 row and column 已改變。

該函數在 Qt 4.1 引入。

[signal] void QTableWidget:: cellClicked ( int row , int column )

此信號發射,每當點擊錶格中的單元格時。 row and column 指定的是被點擊的單元格。

該函數在 Qt 4.1 引入。

[signal] void QTableWidget:: cellDoubleClicked ( int row , int column )

此信號發射,每當雙擊錶格中的單元格時。 row and column 指定的是被雙擊的單元格。

該函數在 Qt 4.1 引入。

[signal] void QTableWidget:: cellEntered ( int row , int column )

此信號被發射當鼠標光標進入單元格時。單元格的指定是通過 row and column .

此信號纔被發射當 mouseTracking 被打開,或當移入項時按下鼠標按鈕。

該函數在 Qt 4.1 引入。

[signal] void QTableWidget:: cellPressed ( int row , int column )

此信號被發射每當按下錶格單元格時。 row and column 指定被按下的單元格。

該函數在 Qt 4.1 引入。

QWidget *QTableWidget:: cellWidget ( int row , int column ) const

返迴單元格顯示 Widget,在給定 row and column .

注意: 錶格擁有 Widget 的所有權。

該函數在 Qt 4.1 引入。

另請參閱 setCellWidget ().

[slot] void QTableWidget:: clear ()

移除視圖中的所有項。這還會移除所有選定和 Header (頭部)。若不想移除 Header (頭部),使用 QTableWidget::clearContents ()。錶格尺度保持不變。

[slot] void QTableWidget:: clearContents ()

從視圖移除不在 Header (頭部) 中的所有項。這還會移除所有選定。錶格尺度保持不變。

該函數在 Qt 4.2 引入。

void QTableWidget:: closePersistentEditor ( QTableWidgetItem * item )

關閉持久編輯器為 item .

另請參閱 openPersistentEditor ().

int QTableWidget:: column (const QTableWidgetItem * item ) const

返迴列號為 item .

int QTableWidget:: columnCount () const

返迴列數。

注意: getter 函數對於特性 columnCount .

另請參閱 setColumnCount ().

[signal] void QTableWidget:: currentCellChanged ( int currentRow , int currentColumn , int previousRow , int previousColumn )

此信號被發射,每當當前單元格改變時。單元格指定通過 previousRow and previousColumn 是之前擁有聚焦的單元格,單元格指定通過 currentRow and currentColumn 是新的當前單元格。

該函數在 Qt 4.1 引入。

int QTableWidget:: currentColumn () const

返迴當前項的列號。

另請參閱 currentRow () 和 setCurrentCell ().

QTableWidgetItem *QTableWidget:: currentItem () const

返迴當前項。

另請參閱 setCurrentItem ().

[signal] void QTableWidget:: currentItemChanged ( QTableWidgetItem * current , QTableWidgetItem * previous )

此信號被發射每當當前項改變。 previous 項是先前有聚焦的項, current 是新的當前項。

int QTableWidget:: currentRow () const

返迴當前項的行號。

另請參閱 currentColumn () 和 setCurrentCell ().

[virtual protected] void QTableWidget:: dropEvent ( QDropEvent * event )

重實現自 QWidget::dropEvent ().

[virtual protected] bool QTableWidget:: dropMimeData ( int row , int column , const QMimeData * data , Qt::DropAction action )

處理 data 的提供是通過結束拖放操作,按給定 action 以給定 row and column 。返迴 true 若通過模型可以處理數據和動作;否則返迴 false .

另請參閱 supportedDropActions ().

void QTableWidget:: editItem ( QTableWidgetItem * item )

開始編輯 item 若它可編輯。

[virtual protected] bool QTableWidget:: event ( QEvent * e )

重實現自 QObject::event ().

QList < QTableWidgetItem *> QTableWidget:: findItems (const QString & text , Qt::MatchFlags flags ) const

查找項匹配 text 使用給定 flags .

QTableWidgetItem *QTableWidget:: horizontalHeaderItem ( int column ) const

返迴水平 Header (頭部) 項為列 column ,若有設置;否則返迴 0。

另請參閱 setHorizontalHeaderItem ().

[protected] QModelIndex QTableWidget:: indexFromItem ( QTableWidgetItem * item ) const

返迴 QModelIndex 關聯給定 item .

[slot] void QTableWidget:: insertColumn ( int column )

把空列插入錶格,位置 column .

[slot] void QTableWidget:: insertRow ( int row )

把空行插入錶格,位置 row .

QTableWidgetItem *QTableWidget:: item ( int row , int column ) const

返迴項為給定 row and column 若有設置;否則返迴 0。

另請參閱 setItem ().

[signal] void QTableWidget:: itemActivated ( QTableWidgetItem * item )

此信號發射,當指定 item 被激活

QTableWidgetItem *QTableWidget:: itemAt (const QPoint & point ) const

返迴的項指針在給定 point ,或返迴 0 若 point 未被錶格 Widget 中的項所覆蓋。

另請參閱 item ().

QTableWidgetItem *QTableWidget:: itemAt ( int ax , int ay ) const

返迴項的位置相當於 QPoint ( ax , ay ) in the table widget's coordinate system, or returns 0 if the specified point is not covered by an item in the table widget.

另請參閱 item ().

[signal] void QTableWidget:: itemChanged ( QTableWidgetItem * item )

此信號發射,每當數據對於 item 已改變。

[signal] void QTableWidget:: itemClicked ( QTableWidgetItem * item )

此信號發射,每當點擊錶格項時。 item 指定被點擊項。

[signal] void QTableWidget:: itemDoubleClicked ( QTableWidgetItem * item )

此信號被發射每當雙擊錶格項時。 item 指定被雙擊項。

[signal] void QTableWidget:: itemEntered ( QTableWidgetItem * item )

此信號發射,當鼠標光標進入項時。 item 是進入項。

此信號纔被發射當 mouseTracking 被打開,或當移入項時按下鼠標按鈕。

[protected] QTableWidgetItem *QTableWidget:: itemFromIndex (const QModelIndex & index ) const

返迴指針指嚮 QTableWidgetItem 關聯給定 index .

[signal] void QTableWidget:: itemPressed ( QTableWidgetItem * item )

此信號發射,每當按下錶格項時。 item 指定按下項。

const QTableWidgetItem *QTableWidget:: itemPrototype () const

返迴用於錶格的項原型。

另請參閱 setItemPrototype ().

[signal] void QTableWidget:: itemSelectionChanged ()

此信號發射,每當選定改變時。

另請參閱 selectedItems () 和 QTableWidgetItem::isSelected ().

[protected] QList < QTableWidgetItem *> QTableWidget:: items (const QMimeData * data ) const

返迴的指針列錶項包含在 data 對象。若未創建對象通過 QTreeWidget 在同一過程中,列錶為空。

[virtual protected] QMimeData *QTableWidget:: mimeData (const QList < QTableWidgetItem *> items ) const

返迴的對象包含序列化描述為指定 items 。用於描述項的格式獲取自 mimeTypes () 函數。

若項列錶為空,返迴 0 而不是序列化空列錶。

[virtual protected] QStringList QTableWidget:: mimeTypes () const

返迴可以用於描述 QTableWidget 項列錶的 MIME (多用途 Internet 郵件擴展) 類型列錶。

另請參閱 mimeData ().

void QTableWidget:: openPersistentEditor ( QTableWidgetItem * item )

打開編輯器為給齣 item 。編輯器仍然打開在編輯之後。

另請參閱 closePersistentEditor ().

void QTableWidget:: removeCellWidget ( int row , int column )

刪除單元格設置 Widget 指示通過 row and column .

該函數在 Qt 4.3 引入。

[slot] void QTableWidget:: removeColumn ( int column )

移除列 column 及錶格中的所有項。

[slot] void QTableWidget:: removeRow ( int row )

移除行 row 及錶格中的所有項。

int QTableWidget:: row (const QTableWidgetItem * item ) const

返迴行對於 item .

int QTableWidget:: rowCount () const

返迴行數。

注意: getter 函數對於特性 rowCount .

另請參閱 setRowCount ().

[slot] void QTableWidget:: scrollToItem (const QTableWidgetItem * item , QAbstractItemView::ScrollHint hint = EnsureVisible)

捲動視圖若有必要以確保 item 可見。 hint 參數指定更準確位置 item 應該被定位在操作後。

QList < QTableWidgetItem *> QTableWidget:: selectedItems () const

返迴所有選中項的列錶。

此函數返迴選中單元格內容的指針列錶。使用 selectedIndexes () 函數以檢索完整選定 包括 空單元格。

另請參閱 selectedIndexes ().

QList < QTableWidgetSelectionRange > QTableWidget:: selectedRanges () const

返迴所有選中範圍的列錶。

另請參閱 QTableWidgetSelectionRange .

void QTableWidget:: setCellWidget ( int row , int column , QWidget * widget )

設置給定 widget 以顯示在單元格中按給定 row and column ,將 Widget 所有權傳遞給錶格。

若以單元格小部件 B 替換單元格小部件 A,單元格小部件 A 將被刪除。例如,在以下代碼片段中, QLineEdit 對象將被刪除。

setCellWidget(row, column, new QLineEdit);
...
setCellWidget(row, column, new QTextEdit);
					

該函數在 Qt 4.1 引入。

另請參閱 cellWidget ().

void QTableWidget:: setColumnCount ( int columns )

將此錶格模型中的列數設為 columns 。若這小於 columnCount (),不想要列中的數據被丟棄。

注意: setter 函數對於特性 columnCount .

另請參閱 columnCount () 和 setRowCount ().

void QTableWidget:: setCurrentCell ( int row , int column )

將當前單元格設為單元格在位置 ( row , column ).

從屬當前 選定模式 ,還可以選中單元格。

該函數在 Qt 4.1 引入。

另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().

void QTableWidget:: setCurrentCell ( int row , int column , QItemSelectionModel::SelectionFlags command )

將當前單元格設為單元格在位置 ( row , column ),使用給定 command .

該函數在 Qt 4.4 引入。

另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().

void QTableWidget:: setCurrentItem ( QTableWidgetItem * item )

將當前項設為 item .

除非選定方式為 NoSelection ,還選中項。

另請參閱 currentItem () 和 setCurrentCell ().

void QTableWidget:: setCurrentItem ( QTableWidgetItem * item , QItemSelectionModel::SelectionFlags command )

將當前項設為 item ,使用給定 command .

該函數在 Qt 4.4 引入。

另請參閱 currentItem () 和 setCurrentCell ().

void QTableWidget:: setHorizontalHeaderItem ( int column , QTableWidgetItem * item )

設置水平 Header (頭部) 項為列 column to item 。若有必要,增加列數以擬閤項。刪除上一 Header (頭部) 項,若有的話。

另請參閱 horizontalHeaderItem ().

void QTableWidget:: setHorizontalHeaderLabels (const QStringList & labels )

設置水平 Header (頭部) 標簽使用 labels .

void QTableWidget:: setItem ( int row , int column , QTableWidgetItem * item )

設置項為給定 row and column to item .

錶格擁有項的所有權。

注意,若啓用排序 (見 sortingEnabled ) 和 column 是當前排序列, row 會被移到排序位置確定通過 item .

若想要設置特定行中的幾項 (比方說:在循環中通過調用 setItem()),可能想要關閉排序 (在這樣做之前),之後再打開它;這將允許使用同一 row 自變量對於同一行中的所有項 (即 setItem() 不會移動行)。

另請參閱 item () 和 takeItem ().

void QTableWidget:: setItemPrototype (const QTableWidgetItem * item )

將錶格項原型設為指定 item .

錶格 Widget 將使用項原型剋隆函數,當需要創建新的錶格項時 (例如:當用戶在空單元格中編輯時)。這很有用,當擁有 QTableWidgetItem 子類且想要確保 QTableWidget 創建實例化的子類。

錶格擁有原型的所有權。

另請參閱 itemPrototype ().

void QTableWidget:: setRangeSelected (const QTableWidgetSelectionRange & range , bool select )

選擇或取消選擇 range 從屬 select .

void QTableWidget:: setRowCount ( int rows )

將此錶格模型中的行數設為 rows 。若這小於 rowCount (),丟棄不想要行中的數據。

注意: setter 函數對於特性 rowCount .

另請參閱 rowCount () 和 setColumnCount ().

void QTableWidget:: setVerticalHeaderItem ( int row , QTableWidgetItem * item )

設置垂直 Header (頭部) 項為行 row to item .

另請參閱 verticalHeaderItem ().

void QTableWidget:: setVerticalHeaderLabels (const QStringList & labels )

設置垂直 Header (頭部) 標簽使用 labels .

void QTableWidget:: sortItems ( int column , Qt::SortOrder order = Qt::AscendingOrder)

排序錶格 Widget 中的所有行基於 column and order .

[virtual protected] Qt::DropActions QTableWidget:: supportedDropActions () const

返迴由此視圖所支持的掉落動作。

另請參閱 Qt::DropActions .

QTableWidgetItem *QTableWidget:: takeHorizontalHeaderItem ( int column )

移除水平 Header (頭部) 項在 column 從頭部 (不刪除它)。

該函數在 Qt 4.1 引入。

QTableWidgetItem *QTableWidget:: takeItem ( int row , int column )

移除項在 row and column 從錶格不刪除它。

QTableWidgetItem *QTableWidget:: takeVerticalHeaderItem ( int row )

移除垂直 Header (頭部) 項在 row 從頭部 (不刪除它)。

該函數在 Qt 4.1 引入。

QTableWidgetItem *QTableWidget:: verticalHeaderItem ( int row ) const

返迴垂直 Header (頭部) 項為行 row .

另請參閱 setVerticalHeaderItem ().

int QTableWidget:: visualColumn ( int logicalColumn ) const

返迴視覺列為給定 logicalColumn .

QRect QTableWidget:: visualItemRect (const QTableWidgetItem * item ) const

返迴項所占據的視口矩形為 item .

int QTableWidget:: visualRow ( int logicalRow ) const

返迴視覺行為給定 logicalRow .