QTableWidget 类提供具有默认模型,基于项的表格视图。 更多...
头: | #include <QTableWidget> |
CMake: |
find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
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 |
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);
Items are created outside the table (with no parent widget) and inserted into the table with 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 ,和 模型/视图编程 .
此特性保持表格列数
By default, for a table constructed without row and column counts, this property contains a value of 0.
访问函数:
int | columnCount () const |
void | setColumnCount (int columns ) |
此特性保持表格行数
By default, for a table constructed without row and column counts, this property contains a value of 0.
访问函数:
int | rowCount () const |
void | setRowCount (int rows ) |
创建新的表格视图采用给定 rows and columns ,和采用给定 parent .
创建新的表格视图采用给定 parent .
[signal]
void
QTableWidget::
cellActivated
(
int
row
,
int
column
)
This signal is emitted when the cell specified by row and column 被激活
[signal]
void
QTableWidget::
cellChanged
(
int
row
,
int
column
)
此信号被发射每当单元格项数据指定通过 row and column 已改变。
[signal]
void
QTableWidget::
cellClicked
(
int
row
,
int
column
)
This signal is emitted whenever a cell in the table is clicked. The row and column specified is the cell that was clicked.
[signal]
void
QTableWidget::
cellDoubleClicked
(
int
row
,
int
column
)
This signal is emitted whenever a cell in the table is double clicked. The row and column specified is the cell that was double clicked.
[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 指定被按下的单元格。
[slot]
void
QTableWidget::
clear
()
移除视图中的所有项。这还会移除所有选定和 Header 头部。若不想移除 Header 头部,使用 QTableWidget::clearContents ()。表格尺度保持不变。
[slot]
void
QTableWidget::
clearContents
()
从视图移除不在 Header 头部中的所有项。这还会移除所有选定。表格尺度保持不变。
[signal]
void
QTableWidget::
currentCellChanged
(
int
currentRow
,
int
currentColumn
,
int
previousRow
,
int
previousColumn
)
此信号被发射,每当当前单元格改变时。单元格指定通过 previousRow and previousColumn is the cell that previously had the focus, the cell specified by currentRow and currentColumn is the new current cell.
[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 是进入项。
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::
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 应该被定位在操作后。
[virtual]
QTableWidget::
~QTableWidget
()
销毁此 QTableWidget .
返回单元格显示 Widget,在给定 row and column .
注意: 表格拥有 Widget 的所有权。
另请参阅 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
, if one has been set; otherwise returns
nullptr
.
另请参阅 setHorizontalHeaderItem ().
返回 QModelIndex 关联给定 item .
注意:
在 Qt 5.10 版之前,此函数接受非
const
item
.
[since 5.10]
bool
QTableWidget::
isPersistentEditorOpen
(
QTableWidgetItem
*
item
) const
返回是否打开持久编辑器为项 item .
该函数在 Qt 5.10 引入。
另请参阅 openPersistentEditor () 和 closePersistentEditor ().
返回项为给定
row
and
column
若有设置;否则返回
nullptr
.
另请参阅 setItem ().
返回的项指针在给定
point
,或返回
nullptr
if
point
未被表格 Widget 中的项所覆盖。
另请参阅 item ().
返回项的位置相当于
QPoint
(
ax
,
ay
) in the table widget's coordinate system, or returns
nullptr
if the specified point is not covered by an item in the table widget.
另请参阅 item ().
返回指针指向 QTableWidgetItem 关联给定 index .
返回用于表格的项原型。
另请参阅 setItemPrototype ().
返回的指针列表项包含在 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 .
返回行对于 item .
返回行数。
注意: Getter function for property rowCount.
另请参阅 setRowCount ().
返回所有选中项的列表。
此函数返回选中单元格内容的指针列表。使用 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 . If necessary, the column count is increased to fit the item. The previous header item (if there was one) is deleted.
另请参阅 horizontalHeaderItem ().
设置水平 Header 头部标签使用 labels .
设置项为给定 row and column to item .
表格拥有项的所有权。
注意,若启用排序 (见 sortingEnabled ) and column is the current sort column, the row will be moved to the sorted position determined by item .
If you want to set several items of a particular row (say, by calling setItem() in a loop), you may want to turn off sorting before doing so, and turn it back on afterwards; this will allow you to use the same row argument for all items in the same row (i.e. setItem() will not move the row).
将表格项原型设为指定 item .
The table widget will use the item prototype clone function when it needs to create a new table item. For example when the user is editing in an empty cell. This is useful when you have a QTableWidgetItem subclass and want to make sure that QTableWidget creates instances of your subclass.
表格拥有原型的所有权。
另请参阅 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 .