QTableWidget 類提供具有默認模型,基於項的錶格視圖。 更多...
| 頭: | #include <QTableWidget> |
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 繼承: | QTableView |
| QTableWidget (QWidget * parent = nullptr) | |
| QTableWidget (int rows , int columns , 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 |
| QModelIndex | indexFromItem (const QTableWidgetItem * item ) 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 |
| QTableWidgetItem * | itemFromIndex (const QModelIndex & index ) const |
| const QTableWidgetItem * | itemPrototype () const |
| QList<QTableWidgetItem *> | items (const QMimeData * data ) 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 ) |
| 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 ) |
[explicit]
QTableWidget::
QTableWidget
(
QWidget
*
parent
= nullptr)
創建新的錶格視圖采用給定 parent .
創建新的錶格視圖采用給定 rows and columns ,和采用給定 parent .
[虛擬]
QTableWidget::
~QTableWidget
()
銷毀此 QTableWidget .
[signal]
void
QTableWidget::
cellActivated
(
int
row
,
int
column
)
此信號發射,當單元格指定通過 row and column 被激活
[signal]
void
QTableWidget::
cellChanged
(
int
row
,
int
column
)
此信號被發射每當單元格項數據指定通過 row and column 已改變。
[signal]
void
QTableWidget::
cellClicked
(
int
row
,
int
column
)
此信號發射,每當點擊錶格中的單元格時。 row and column 指定的是被點擊的單元格。
[signal]
void
QTableWidget::
cellDoubleClicked
(
int
row
,
int
column
)
此信號發射,每當雙擊錶格中的單元格時。 row and column 指定的是被雙擊的單元格。
[signal]
void
QTableWidget::
cellEntered
(
int
row
,
int
column
)
此信號發射,當鼠標光標進入單元格時。單元格的指定是通過 row and column .
This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.
[signal]
void
QTableWidget::
cellPressed
(
int
row
,
int
column
)
此信號被發射每當按下錶格單元格時。 row and column 指定被按下的單元格。
返迴單元格顯示 Widget,在給定 row and column .
注意: 錶格擁有 Widget 的所有權。
另請參閱 setCellWidget ().
[slot]
void
QTableWidget::
clear
()
移除視圖中的所有項。這還會移除所有選定和 Header (頭部)。若不想移除 Header (頭部),使用 QTableWidget::clearContents ()。錶格尺度保持不變。
[slot]
void
QTableWidget::
clearContents
()
從視圖移除不在 Header (頭部) 中的所有項。這還會移除所有選定。錶格尺度保持不變。
關閉持久編輯器為 item .
另請參閱 openPersistentEditor () 和 isPersistentEditorOpen ().
返迴列號為 item .
返迴列數。
注意: getter 函數對於特性 columnCount。
另請參閱 setColumnCount ().
[signal]
void
QTableWidget::
currentCellChanged
(
int
currentRow
,
int
currentColumn
,
int
previousRow
,
int
previousColumn
)
此信號發射,每當當前單元格改變時。單元格指定通過 previousRow and previousColumn 是之前擁有聚焦的單元格,單元格指定通過 currentRow and currentColumn 是新的當前單元格。
返迴當前項的列號。
另請參閱 currentRow () 和 setCurrentCell ().
返迴當前項。
另請參閱 setCurrentItem ().
[signal]
void
QTableWidget::
currentItemChanged
(
QTableWidgetItem
*
current
,
QTableWidgetItem
*
previous
)
此信號被發射每當當前項改變。 previous 項是先前有聚焦的項, current 是新的當前項。
返迴當前項的行號。
另請參閱 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 ().
返迴 QModelIndex 關聯給定 item .
注意:
在 Qt 5.10 之前,此函數接受非
const
item
.
[slot]
void
QTableWidget::
insertColumn
(
int
column
)
把空列插入錶格,位置 column .
[slot]
void
QTableWidget::
insertRow
(
int
row
)
把空行插入錶格,位置 row .
返迴是否打開持久編輯器為項 item .
另請參閱 openPersistentEditor () 和 closePersistentEditor ().
返迴項為給定
row
and
column
若有設置;否則返迴
nullptr
.
另請參閱 setItem ().
[signal]
void
QTableWidget::
itemActivated
(
QTableWidgetItem
*
item
)
此信號發射,當指定 item 被激活
返迴的項指針在給定
point
,或返迴
nullptr
if
point
未被錶格 Widget 中的項所覆蓋。
另請參閱 item ().
返迴項的位置相當於
QPoint
(
ax
,
ay
) 在錶格 Widget 坐標係,或返迴
nullptr
若錶格 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 是進入項。
This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.
返迴指針指嚮 QTableWidgetItem 關聯給定 index .
[signal]
void
QTableWidget::
itemPressed
(
QTableWidgetItem
*
item
)
此信號發射,每當按下錶格項時。 item 指定按下項。
返迴用於錶格的項原型。
另請參閱 setItemPrototype ().
[signal]
void
QTableWidget::
itemSelectionChanged
()
此信號發射,每當選定改變時。
另請參閱 selectedItems () 和 QTableWidgetItem::isSelected ().
返迴的指針列錶項包含在 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 .
[slot]
void
QTableWidget::
removeColumn
(
int
column
)
移除列 column 及錶格中的所有項。
[slot]
void
QTableWidget::
removeRow
(
int
row
)
移除行 row 及錶格中的所有項。
返迴行對於 item .
返迴行數。
注意: getter 函數對於特性 rowCount。
另請參閱 setRowCount ().
[slot]
void
QTableWidget::
scrollToItem
(const
QTableWidgetItem
*
item
,
QAbstractItemView::ScrollHint
hint
= EnsureVisible)
捲動視圖若有必要以確保 item 可見。 hint 參數指定更準確位置 item 應該被定位在操作後。
返迴所有選中項的列錶。
此函數返迴選中單元格內容的指針列錶。使用 selectedIndexes () 函數以檢索完整選定 包括 空單元格。
另請參閱 selectedIndexes ().
返迴所有選中範圍的列錶。
另請參閱 QTableWidgetSelectionRange .
設置給定 widget 以顯示在單元格中按給定 row and column ,將 Widget 所有權傳遞給錶格。
若以單元格小部件 B 替換單元格小部件 A,單元格小部件 A 將被刪除。例如,在以下代碼片段中, QLineEdit 對象將被刪除。
setCellWidget(row, column, new QLineEdit); ... setCellWidget(row, column, new QTextEdit);
另請參閱 cellWidget ().
將此錶格模型中的列數設為 columns 。若這小於 columnCount (),不想要列中的數據被丟棄。
注意: setter 函數對於特性 columnCount .
另請參閱 columnCount () 和 setRowCount ().
將當前單元格設為單元格在位置 ( row , column ).
從屬當前 選定模式 ,還可以選中單元格。
另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().
將當前單元格設為單元格在位置 ( row , column ),使用給定 command .
另請參閱 setCurrentItem (), currentRow (),和 currentColumn ().
將當前項設為 item .
除非選定方式為 NoSelection ,還選中項。
另請參閱 currentItem () 和 setCurrentCell ().
將當前項設為 item ,使用給定 command .
另請參閱 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 從頭部 (不刪除它)。
移除項在 row and column 從錶格不刪除它。
移除垂直 Header (頭部) 項在 row 從頭部 (不刪除它)。
返迴垂直 Header (頭部) 項為行 row .
另請參閱 setVerticalHeaderItem ().
返迴視覺列為給定 logicalColumn .
返迴項所占據的視口矩形為 item .
返迴視覺行為給定 logicalRow .