QTableWidget类
QTableWidget类提供了一个基于项的表格视图,具有默认模型。更多...
头文件 | #include <QTableWidget> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QTableView |
属性
- columnCount : int
- rowCount : int
公共函数
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) |
虚拟 QMimeData * | mimeData(const QList |
虚拟 QStringList | mimeTypes() const |
虚拟 Qt::DropActions | supportedDropActions() const |
重实现保护函数
详细描述
表格小部件为应用程序提供标准表格显示功能。QTableWidget中的条目由QTableWidgetItem提供。
如果想要使用自己的数据模型的表格,应使用QTableView而不是此类。
可以使用所需的行数和列数构建表格小部件
tableWidget = new QTableWidget(12, 3, this);
或者,可以使用未指定大小的方式构建表格,以后再调整大小
tableWidget = new QTableWidget(this); tableWidget->setRowCount(10); tableWidget->setColumnCount(5);
项目在外部创建(没有父小部件),然后使用setItem()方法将其插入到表格中
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg( (row+1)*(column+1))); tableWidget->setItem(row, column, newItem);
如果要在表格小部件中启用排序,请在一项元素填充完后再进行此操作,否则排序可能会干扰插入顺序(有关详细信息,请参阅setItem)。
表格可以同时具有水平和垂直表头。创建表头的最简单方法是将字符串列表提供给setHorizontalHeaderLabels()和setVerticalHeaderLabels()函数。这将为表格的列和行提供简单的文本表头。更复杂的表头可以由通常在表格外部构建的现有表格项目创建。例如,我们可以构建一个带有图标和对齐文本的表格项目,并将其用作特定列的表头
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) |
成员函数说明
[ explicit ]
QTableWidget::QTableWidget(QWidget *parent = nullptr)
使用指定的parent创建一个新的表格视图。
QTableWidget::QTableWidget(int rows, int columns, QWidget *parent = nullptr)
创建一个新的表视图,具有指定的 rows 和 columns 行数和列数,以及给定的 parent 父对象。
[虚拟 nullptr]
QTableWidget::~QTableWidget()
销毁此 QTableWidget 对象。
[信号]
void QTableWidget::cellActivated(int row, int column)
当指定的单元格由 row 和 column 激活时, emitting 这个信号。
[信号]
void QTableWidget::cellChanged(int row, int column)
当指定的单元格由 row 和 column 的项数据更改时,emitting 这个信号。
[信号]
void QTableWidget::cellClicked(int row, int column)
在表格中单击单元格时,emitting 此信号。指定的 row 和 column 是单击的单元格。
[信号]
void QTableWidget::cellDoubleClicked(int row, int column)
当在表格中双击单元格时,emitting 此信号。指定的 row 和 column 是被双击的单元格。
[信号]
void QTableWidget::cellEntered(int row, int column)
当鼠标指针进入单元格时,emitting 此信号。单元格由 row 和 column 指定。
仅当启用 mouseTracking 或在进入项时按下鼠标按钮时,才发出此信号。
[信号]
void QTableWidget::cellPressed(int row, int column)
在表格中的单元格被按下时,emitting 此信号。指定的 row 和 column 是被按下的单元格。
QWidget *QTableWidget::cellWidget(int row, int column) const
返回给定 row 和 column 中显示的控件。
注意:表格将拥有该控件的所有权。
另请参阅:setCellWidget。
[槽函数]
void QTableWidget::clear()
从视图中删除所有项。这将删除所有选择和标题。如果您不想删除标题,请使用 QTableWidget::clearContents。表的尺寸保持不变。
[槽函数]
void QTableWidget::clearContents()
从视图中移除所有不在标题中的项目。这也会移除所有选择。表的大小保持不变。
void QTableWidget::closePersistentEditor(QTableWidgetItem *item)
关闭对替换项 item 的持久编辑器。
另请参阅openPersistentEditor() 和 isPersistentEditorOpen。
int QTableWidget::column(const QTableWidgetItem *item) const
返回 item 所在的列。
int QTableWidget::columnCount() const
返回列数。
注意:列数属性的获取函数。
另请参阅setColumnCount。
[信号]
void QTableWidget::currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
当前单元格更改时发出此信号。由 previousRow 和 previousColumn 指定的单元格是之前具有焦点的单元格,由 currentRow 和 currentColumn 指定的单元格是新的当前单元格。
int QTableWidget::currentColumn() const
返回当前项的列。
另请参阅currentRow() 和 setCurrentCell。
QTableWidgetItem *QTableWidget::currentItem() const
返回当前项。
另请参阅setCurrentItem。
[信号]
void QTableWidget::currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
当前项更改时发出此信号。由 previous 指定的项是之前具有焦点的项,current 是新的当前项。
int QTableWidget::currentRow() const
返回当前项的行。
另请参阅currentColumn() 和 setCurrentCell。
[重写虚拟受保护的]
void QTableWidget::dropEvent(QDropEvent *event)
重实现: QAbstractItemView::dropEvent(QDropEvent *event).
[虚拟受保护的]
bool QTableWidget::dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action)
处理由拖放操作提供并由给定 action 结束的 data,在给定的 row 和 column。如果可以由模型处理数据,则返回 true
;否则返回 false
。
另请参阅supportedDropActions。
void QTableWidget::editItem(QTableWidgetItem *item)
如果项目可编辑,则开始编辑item。
[覆盖虚拟保护]
bool QTableWidget::event(QEvent *e)
重新实现: QAbstractItemView::event(QEvent *event).
QList<QTableWidgetItem> QTableWidget::findItems(const QString &text, Qt::MatchFlags flags) const
使用给定的flags查找与文本text匹配的项目。
QTableWidgetItem *QTableWidget::horizontalHeaderItem(int column) const
如果已设置列的横幅项目,则返回列column的横幅项目;否则返回nullptr
。
另请参阅setHorizontalHeaderItem().
QModelIndex QTableWidget::indexFromItem(const QTableWidgetItem *item) const
返回与给定item关联的QModelIndex。
注意:在5.10之前的Qt版本中,此函数使用非const
item。
[slot]
void QTableWidget::insertColumn(int column)
在表中的column处插入一个空列。
[slot]
void QTableWidget::insertRow(int row)
在表中的row处插入一个空行。
bool QTableWidget::isPersistentEditorOpen(QTableWidgetItem *item) const
返回是否为项目item打开了持久编辑器。
另请参阅openPersistentEditor() 和 closePersistentEditor().
QTableWidgetItem *QTableWidget::item(int row, int column) const
如果已设置给定row和column的项目,则返回项目;否则返回nullptr
。
另请参阅setItem().
[signal]
void QTableWidget::itemActivated(QTableWidgetItem *item)
当指定的item被激活时发出此信号。
QTableWidgetItem *QTableWidget::itemAt(const QPoint &point) const
返回指定point处的项目的指针,如果point未被表小部件中的项目覆盖,则返回nullptr
。
参见 item().
QTableWidgetItem *QTableWidget::itemAt(int ax, int ay) const
返回表控件坐标系中与QPoint(ax, ay)位置等效的项,如果指定的点不在表控件的项覆盖范围内,则返回nullptr
。
参见 item().
[信号]
void QTableWidget::itemChanged(QTableWidgetItem *item)
每次item的数据发生变化时,都会发出此信号。
[信号]
void QTableWidget::itemClicked(QTableWidgetItem *item)
每当在表中单击一个项时,都会发出此信号。指定的item是单击的项。
[信号]
void QTableWidget::itemDoubleClicked(QTableWidgetItem *item)
每当在表中双击一个项时,都会发出此信号。指定的item是双击的项。
[信号]
void QTableWidget::itemEntered(QTableWidgetItem *item)
当鼠标光标进入一个项时,发出此信号。所进入的item是所进入的项。
仅当启用 mouseTracking 或在进入项时按下鼠标按钮时,才发出此信号。
QTableWidgetItem *QTableWidget::itemFromIndex(const QModelIndex &index) const
返回与给定index关联的QTableWidgetItem指针。
[信号]
void QTableWidget::itemPressed(QTableWidgetItem *item)
每当在表中按下项时,都会发出此信号。指定的<и translate="no">item是被按下的项。
const QTableWidgetItem *QTableWidget::itemPrototype() const
返回表使用的项原型。
参见 setItemPrototype().
[信号]
void QTableWidget::itemSelectionChanged()
每当选择发生变化时,都会发出此信号。
参见 selectedItems()和QTableWidgetItem::isSelected().
QList<QTableWidgetItem *> QTableWidget::items(const QMimeData *data) const
返回包含在data对象中的项的指针列表。如果该对象不是由同一进程中的QTreeWidget创建的,则列表为空。
[虚拟受保护]
QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem *> &items) const
返回一个对象,其中包含指定 items 的序列化描述。描述项的格式从 mimeTypes() 函数获取。
如果项目列表为空,则返回 nullptr
而不是序列化的空列表。
[虚拟受保护]
QStringList QTableWidget::mimeTypes() const
返回可以使用来描述一系列 tablewidget 项目的 MIME 类型列表。
另请参阅mimeData。
void QTableWidget::openPersistentEditor(QTableWidgetItem *item)
打开给定 item 的编辑器。编辑后编辑器保持打开状态。
另请参阅closePersistentEditor() 和 isPersistentEditorOpen。
void QTableWidget::removeCellWidget(int row, int column)
移除由 row 和 column 指定的单元格上的小部件。
[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
返回行数。
注意: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和column的单元格中显示,并将widget的所有权传递给表。
如果在单元格widget A被替换为单元格widget B,单元格widget A将被删除。例如,在下面的代码片段中,QLineEdit对象将被删除。
另请参阅cellWidget。
void QTableWidget::setColumnCount(int columns)
将此表的模型中的列数设置为columns。如果这小于columnCount(),则删除不需要的列中的数据。
注意:属性columnCount的设置器函数。
另请参阅columnCount()和setRowCount。
void QTableWidget::setCurrentCell(int row, int column)
将当前单元格设置为位置(row, column)的单元格。
根据当前的选择模式,该单元格也可能被选中。
另请参阅setCurrentItem()、currentRow和currentColumn。
void QTableWidget::setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command)
使用给定的command将当前单元格设置为位置(row, column)的单元格。
另请参阅setCurrentItem()、currentRow和currentColumn。
void QTableWidget::setCurrentItem(QTableWidgetItem *item)
将当前项设置为item。
除非选择模式是NoSelection,否则该项也会被选中。
另请参阅currentItem()和setCurrentCell。
void QTableWidget::setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command)
使用给定的command将当前项设置为item。
另请参阅currentItem()和setCurrentCell。
void QTableWidget::setHorizontalHeaderItem(int column, QTableWidgetItem *item)
设置列 列 的水平表头项为 项。如需则增加列数以适应项。删除之前的表头项(如果有的话)。
另请参阅 horizontalHeaderItem。
void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels)
使用 labels 设置水平表头标签。
void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)
为给定的 行 和 列 设置 项。
表格将拥有项的所有权。
注意,如果启用了排序(见 sortingEnabled)且 列 是当前排序列,则 行 将移动到由 项 确定的排序位置。
如果您想为特定行设置多个项(例如,通过循环调用 setItem()),您可能希望在这样做之前关闭排序,然后再重新启动;这将允许您为同一行的所有项使用相同的 行 参数(即 setItem() 不会移动行)。
void QTableWidget::setItemPrototype(const QTableWidgetItem *item)
将表格的项原型设置为指定的 项。
表格小部件将在需要创建新的表格项时使用项原型克隆函数。例如,当用户在空单元格中编辑时。这对于您有一个 QTableWidgetItem 子类并想要确保 QTableWidget 创建您子类实例时很有用。
表格将拥有原型的所有权。
另请参阅 itemPrototype。
void QTableWidget::setRangeSelected(const QTableWidgetSelectionRange &range, bool select)
根据 select 选择或取消选择 范围。
void QTableWidget::setRowCount(int rows)
将此表格模型的行数设置为 rows。如果小于 rowCount(),则丢弃不要的行中的数据。
注意: 属性 rowCount 的设置函数。
另请参阅 rowCount() 和 setColumnCount。
void QTableWidget::setVerticalHeaderItem(int row, QTableWidgetItem *item)
将行 行 的垂直表头项设置为 项。
另请参阅 verticalHeaderItem。
void QTableWidget::setVerticalHeaderLabels(const QStringList &labels)
使用 labels 设置垂直标题。
void QTableWidget::sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)
根据 column 和 order 对表格中的所有行进行排序。
[虚拟受保护]
Qt::DropActions QTableWidget::supportedDropActions() const
返回此视图支持的拖放操作。
另请参阅 Qt::DropActions.
QTableWidgetItem *QTableWidget::takeHorizontalHeaderItem(int column)
从标题中删除 column 处的水平标题项,但不删除它。
QTableWidgetItem *QTableWidget::takeItem(int row, int column)
从表格中删除 row 和 column 处的项,但不删除它。
QTableWidgetItem *QTableWidget::takeVerticalHeaderItem(int row)
从标题中删除 row 处的垂直标题项,但不删除它。
QTableWidgetItem *QTableWidget::verticalHeaderItem(int row) const
返回第 row 行的垂直标题项。
另请参阅 setVerticalHeaderItem().
int QTableWidget::visualColumn(int logicalColumn) const
返回给定 logicalColumn 的可视列。
QRect QTableWidget::visualItemRect(const QTableWidgetItem *item) const
返回 item 在视口内占据的矩形。
int QTableWidget::visualRow(int logicalRow) const
返回给定 logicalRow 的可视行。
© 2024 The Qt Company Ltd. 此处包含的文档贡献的版权属于各自的业主。此处提供的文档是根据自由软件基金会发布的 GNU自由文档许可协议版本1.3 许可的。Qt和相应的标志是The Qt Company Ltd.在芬兰以及世界其他国家的商标。所有其他商标均为各自业主的财产。