QTableWidget 类

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 *> (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 命令 )
void setCurrentItem (QTableWidgetItem * item )
void setCurrentItem (QTableWidgetItem * item , QItemSelectionModel::SelectionFlags 命令 )
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 * 上一 )
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 *> & ) 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 ,和 模型/视图编程 .

特性文档编制

columnCount : int

此特性保持表格列数

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 )

rowCount : int

此特性保持表格行数

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 )

成员函数文档编制

[explicit] QTableWidget:: QTableWidget ( QWidget * parent = nullptr)

创建新的表格视图采用给定 parent .

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

创建新的表格视图采用给定 rows and columns ,和采用给定 parent .

[virtual noexcept] 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 .

此信号才发射当 mouseTracking 打开时,或在按下鼠标按钮当移入项时。

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

此信号被发射每当按下表格单元格时。 row and column 指定被按下的单元格。

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

返回单元格显示 Widget,在给定 row and column .

注意: 表格拥有 Widget 的所有权。

另请参阅 setCellWidget ().

[slot] void QTableWidget:: clear ()

移除视图中的所有项。这还会移除所有选定和 Header (头部)。若不想移除 Header (头部),使用 QTableWidget::clearContents ()。表格尺度保持不变。

[slot] void QTableWidget:: clearContents ()

从视图移除不在 Header (头部) 中的所有项。这还会移除所有选定。表格尺度保持不变。

void QTableWidget:: closePersistentEditor ( QTableWidgetItem * item )

关闭持久编辑器为 item .

另请参阅 openPersistentEditor () 和 isPersistentEditorOpen ().

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 is the cell that previously had the focus, the cell specified by currentRow and currentColumn is the new current cell.

int QTableWidget:: currentColumn () const

返回当前项的列号。

另请参阅 currentRow () 和 setCurrentCell ().

QTableWidgetItem *QTableWidget:: currentItem () const

返回当前项。

另请参阅 setCurrentItem ().

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

此信号被发射每当当前项改变。 上一 项是先前有聚焦的项, current 是新的当前项。

int QTableWidget:: currentRow () const

返回当前项的行号。

另请参阅 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 ().

void QTableWidget:: editItem ( QTableWidgetItem * item )

开始编辑 item 若它可编辑。

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

重实现: QAbstractItemView::event (QEvent *event).

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

查找项匹配 text 使用给定 flags .

QTableWidgetItem *QTableWidget:: horizontalHeaderItem ( int column ) const

返回水平 Header (头部) 项为列 column ,若有设置;否则返回 nullptr .

另请参阅 setHorizontalHeaderItem ().

QModelIndex QTableWidget:: indexFromItem (const QTableWidgetItem * item ) const

返回 QModelIndex 关联给定 item .

注意: 在 Qt 5.10 之前,此函数接受非 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 and column 若有设置;否则返回 nullptr .

另请参阅 setItem ().

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

此信号被发射当指定 item 被激活

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

返回的项指针在给定 point ,或返回 nullptr if point 未被表格 Widget 中的项所覆盖。

另请参阅 item ().

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

返回项的位置相当于 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 ().

[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 打开时,或在按下鼠标按钮当移入项时。

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 ().

QList < QTableWidgetItem *> QTableWidget:: (const QMimeData * data ) const

返回的指针列表项包含在 data 对象。若未创建对象通过 QTreeWidget 在同一过程中,列表为空。

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

返回的对象包含序列化描述为指定 。用于描述项的格式获取自 mimeTypes () 函数。

若项列表为空, nullptr 被返回而不是序列化空列表。

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

返回可以用于描述 QTableWidget 项列表的 MIME (多用途 Internet 邮件扩展) 类型列表。

另请参阅 mimeData ().

void QTableWidget:: openPersistentEditor ( QTableWidgetItem * item )

打开编辑器为给出 item 。编辑器仍然打开在编辑之后。

另请参阅 closePersistentEditor () 和 isPersistentEditorOpen ().

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

删除单元格设置 Widget 指示通过 row and 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

返回行数。

注意: Getter function for property 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);
					

另请参阅 cellWidget ().

void QTableWidget:: setColumnCount ( int columns )

将此表格模型中的列数设为 columns 。若这小于 columnCount (),不想要列中的数据被丢弃。

注意: setter 函数对于特性 columnCount .

另请参阅 columnCount () 和 setRowCount ().

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

将当前单元格设为单元格在位置 ( row , column ).

从属当前 选定模式 ,还可以选中单元格。

另请参阅 setCurrentItem (), currentRow (),和 currentColumn ().

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

将当前单元格设为单元格在位置 ( row , column ),使用给定 命令 .

另请参阅 setCurrentItem (), currentRow (),和 currentColumn ().

void QTableWidget:: setCurrentItem ( QTableWidgetItem * item )

将当前项设为 item .

除非选定模式为 NoSelection ,项还被选中。

另请参阅 currentItem () 和 setCurrentCell ().

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

将当前项设为 item ,使用给定 命令 .

另请参阅 currentItem () 和 setCurrentCell ().

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

设置水平 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 ().

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 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 () 和 takeItem ().

void QTableWidget:: setItemPrototype (const QTableWidgetItem * item )

将表格项原型设为指定 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 ().

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 从头部 (不删除它)。

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

移除项在 row and column 从表格不删除它。

QTableWidgetItem *QTableWidget:: takeVerticalHeaderItem ( int row )

移除垂直 Header (头部) 项在 row 从头部 (不删除它)。

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 .