QTableWidget 類提供具有默認模型,基於項的錶格視圖。 更多...
| 頭: | #include <QTableWidget> |
| qmake: | QT += widgets |
| 繼承: | QTableView |
| QTableWidget (int rows , int columns , QWidget * parent = nullptr) | |
| QTableWidget (QWidget * parent = nullptr) | |
| virtual | ~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 |
| bool | isPersistentEditorOpen (QTableWidgetItem * item ) 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 (const 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 ) override |
| virtual bool | event (QEvent * e ) override |
錶格 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 ,和 模型/視圖編程 .
此特性保持錶格列數
默認情況下,對於未采用行/列數構造的錶格,此特性包含 0 值。
訪問函數:
| int | columnCount () const |
| void | setColumnCount (int columns ) |
此特性保持錶格行數
默認情況下,對於未采用行/列數構造的錶格,此特性包含 0 值。
訪問函數:
| int | rowCount () const |
| void | setRowCount (int rows ) |
創建新的錶格視圖采用給定 rows and columns ,和采用給定 parent .
創建新的錶格視圖采用給定 parent .
[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 引入。
[slot]
void
QTableWidget::
clear
()
移除視圖中的所有項。這還會移除所有選定和 Header (頭部)。若不想移除 Header (頭部),使用 QTableWidget::clearContents ()。錶格尺度保持不變。
[slot]
void
QTableWidget::
clearContents
()
從視圖移除不在 Header (頭部) 中的所有項。這還會移除所有選定。錶格尺度保持不變。
該函數在 Qt 4.2 引入。
[signal]
void
QTableWidget::
currentCellChanged
(
int
currentRow
,
int
currentColumn
,
int
previousRow
,
int
previousColumn
)
此信號發射,每當當前單元格改變時。單元格指定通過 previousRow and previousColumn 是之前擁有聚焦的單元格,單元格指定通過 currentRow and currentColumn 是新的當前單元格。
該函數在 Qt 4.1 引入。
[signal]
void
QTableWidget::
currentItemChanged
(
QTableWidgetItem
*
current
,
QTableWidgetItem
*
previous
)
此信號被發射每當當前項改變。 previous 項是先前有聚焦的項, current 是新的當前項。
[slot]
void
QTableWidget::
insertColumn
(
int
column
)
把空列插入錶格,位置 column .
[slot]
void
QTableWidget::
insertRow
(
int
row
)
把空行插入錶格,位置 row .
[signal]
void
QTableWidget::
itemActivated
(
QTableWidgetItem
*
item
)
此信號發射,當指定 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 被打開,或當移入項時按下鼠標按鈕。
[signal]
void
QTableWidget::
itemPressed
(
QTableWidgetItem
*
item
)
此信號發射,每當按下錶格項時。 item 指定按下項。
[signal]
void
QTableWidget::
itemSelectionChanged
()
此信號發射,每當選定改變時。
另請參閱 selectedItems () 和 QTableWidgetItem::isSelected ().
[slot]
void
QTableWidget::
removeColumn
(
int
column
)
移除列 column 及錶格中的所有項。
[slot]
void
QTableWidget::
removeRow
(
int
row
)
移除行 row 及錶格中的所有項。
[slot]
void
QTableWidget::
scrollToItem
(const
QTableWidgetItem
*
item
,
QAbstractItemView::ScrollHint
hint
= EnsureVisible)
捲動視圖若有必要以確保 item 可見。 hint 參數指定更準確位置 item 應該被定位在操作後。
[虛擬]
QTableWidget::
~QTableWidget
()
銷毀此 QTableWidget .
返迴單元格顯示 Widget,在給定 row and column .
注意: 錶格擁有 Widget 的所有權。
該函數在 Qt 4.1 引入。
另請參閱 setCellWidget ().
關閉持久編輯器為 item .
另請參閱 openPersistentEditor () 和 isPersistentEditorOpen ().
返迴列號為 item .
返迴列數。
注意: getter 函數對於特性 columnCount。
另請參閱 setColumnCount ().
返迴當前項的列號。
另請參閱 currentRow () 和 setCurrentCell ().
返迴當前項。
另請參閱 setCurrentItem ().
返迴當前項的行號。
另請參閱 currentColumn () 和 setCurrentCell ().
[override virtual protected]
void
QTableWidget::
dropEvent
(
QDropEvent
*
event
)
重實現: QAbstractItemView::dropEvent (QDropEvent *event).
[virtual protected]
bool
QTableWidget::
dropMimeData
(
int
row
,
int
column
, const
QMimeData
*
data
,
Qt::DropAction
action
)
處理
data
的提供是通過結束拖放操作,按給定
action
以給定
row
and
column
。返迴
true
若通過模型可以處理數據和動作;否則返迴
false
.
另請參閱 supportedDropActions ().
開始編輯 item 若它可編輯。
[override virtual protected]
bool
QTableWidget::
event
(
QEvent
*
e
)
重實現: QAbstractItemView::event (QEvent *event).
查找項匹配 text 使用給定 flags .
返迴水平 Header (頭部) 項為列
column
,若有設置;否則返迴
nullptr
.
另請參閱 setHorizontalHeaderItem ().
[protected]
QModelIndex
QTableWidget::
indexFromItem
(const
QTableWidgetItem
*
item
) const
返迴 QModelIndex 關聯給定 item .
注意:
在 Qt 5.10 之前,此函數接受非
const
item
.
返迴是否打開持久編輯器為項 item .
該函數在 Qt 5.10 引入。
另請參閱 openPersistentEditor () 和 closePersistentEditor ().
返迴項為給定
row
and
column
若有設置;否則返迴
nullptr
.
另請參閱 setItem ().
返迴的項指針在給定
point
,或返迴
nullptr
if
point
未被錶格 Widget 中的項所覆蓋。
另請參閱 item ().
返迴項的位置相當於
QPoint
(
ax
,
ay
) 在錶格 Widget 坐標係,或返迴
nullptr
若錶格 Widget 項未覆蓋指定點。
另請參閱 item ().
[protected]
QTableWidgetItem
*QTableWidget::
itemFromIndex
(const
QModelIndex
&
index
) const
返迴指針指嚮 QTableWidgetItem 關聯給定 index .
返迴用於錶格的項原型。
另請參閱 setItemPrototype ().
[protected]
QList
<
QTableWidgetItem
*> QTableWidget::
items
(const
QMimeData
*
data
) const
返迴的指針列錶項包含在 data 對象。若未創建對象通過 QTreeWidget 在同一過程中,列錶為空。
[virtual protected]
QMimeData
*QTableWidget::
mimeData
(const
QList
<
QTableWidgetItem
*>
items
) const
返迴的對象包含序列化描述為指定 items 。用於描述項的格式獲取自 mimeTypes () 函數。
若項列錶為空,
nullptr
被返迴而不是序列化空列錶。
[virtual protected]
QStringList
QTableWidget::
mimeTypes
() const
返迴可以用於描述 QTableWidget 項列錶的 MIME (多用途 Internet 郵件擴展) 類型列錶。
另請參閱 mimeData ().
打開編輯器為給齣 item 。編輯器仍然打開在編輯之後。
另請參閱 closePersistentEditor () 和 isPersistentEditorOpen ().
刪除單元格設置 Widget 指示通過 row and column .
該函數在 Qt 4.3 引入。
返迴行對於 item .
返迴行數。
注意: getter 函數對於特性 rowCount。
另請參閱 setRowCount ().
返迴所有選中項的列錶。
此函數返迴選中單元格內容的指針列錶。使用 selectedIndexes () 函數以檢索完整選定 包括 空單元格。
另請參閱 selectedIndexes ().
返迴所有選中範圍的列錶。
另請參閱 QTableWidgetSelectionRange .
設置給定 widget 以顯示在單元格中按給定 row and column ,將 Widget 所有權傳遞給錶格。
若以單元格小部件 B 替換單元格小部件 A,單元格小部件 A 將被刪除。例如,在以下代碼片段中, QLineEdit 對象將被刪除。
setCellWidget(row, column, new QLineEdit); ... setCellWidget(row, column, new QTextEdit);
該函數在 Qt 4.1 引入。
另請參閱 cellWidget ().
將此錶格模型中的列數設為 columns 。若這小於 columnCount (),不想要列中的數據被丟棄。
注意: setter 函數對於特性 columnCount .
另請參閱 columnCount () 和 setRowCount ().
將當前單元格設為單元格在位置 ( row , column ).
從屬當前 選定模式 ,還可以選中單元格。
該函數在 Qt 4.1 引入。
另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().
將當前單元格設為單元格在位置 ( row , column ),使用給定 command .
該函數在 Qt 4.4 引入。
另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().
將當前項設為 item .
除非選定方式為 NoSelection ,還選中項。
另請參閱 currentItem () 和 setCurrentCell ().
將當前項設為 item ,使用給定 command .
該函數在 Qt 4.4 引入。
另請參閱 currentItem () 和 setCurrentCell ().
設置水平 Header (頭部) 項為列 column to item 。若有必要,增加列數以擬閤項。刪除上一 Header (頭部) 項,若有的話。
另請參閱 horizontalHeaderItem ().
設置水平 Header (頭部) 標簽使用 labels .
設置項為給定 row and column to item .
錶格擁有項的所有權。
注意,若啓用排序 (見 sortingEnabled ) 和 column 是當前排序列, row 會被移到排序位置確定通過 item .
若想要設置特定行中的幾項 (比方說:在循環中通過調用 setItem()),可能想要關閉排序 (在這樣做之前),之後再打開它;這將允許使用同一 row 自變量對於同一行中的所有項 (即 setItem() 不會移動行)。
將錶格項原型設為指定 item .
錶格 Widget 將使用項原型剋隆函數,當需要創建新的錶格項時 (例如:當用戶在空單元格中編輯時)。這很有用,當擁有 QTableWidgetItem 子類且想要確保 QTableWidget 創建實例化的子類。
錶格擁有原型的所有權。
另請參閱 itemPrototype ().
選擇或取消選擇 range 從屬 select .
將此錶格模型中的行數設為 rows 。若這小於 rowCount (),丟棄不想要行中的數據。
注意: setter 函數對於特性 rowCount .
另請參閱 rowCount () 和 setColumnCount ().
設置垂直 Header (頭部) 項為行 row to item .
另請參閱 verticalHeaderItem ().
設置垂直 Header (頭部) 標簽使用 labels .
排序錶格 Widget 中的所有行基於 column and order .
[virtual protected]
Qt::DropActions
QTableWidget::
supportedDropActions
() const
返迴由此視圖所支持的掉落動作。
另請參閱 Qt::DropActions .
移除水平 Header (頭部) 項在 column 從頭部 (不刪除它)。
該函數在 Qt 4.1 引入。
移除項在 row and column 從錶格不刪除它。
移除垂直 Header (頭部) 項在 row 從頭部 (不刪除它)。
該函數在 Qt 4.1 引入。
返迴垂直 Header (頭部) 項為行 row .
另請參閱 setVerticalHeaderItem ().
返迴視覺列為給定 logicalColumn .
返迴項所占據的視口矩形為 item .
返迴視覺行為給定 logicalRow .