The QTableWidget 类提供具有默认模型,基于项的表格视图。 更多...
头: | #include <QTableWidget> |
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 |
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 命令 ) |
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 * 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 () |
const QMetaObject | staticMetaObject |
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 *> | 项 (const QMimeData * data ) const |
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 |
The QTableWidget 类提供具有默认模型,基于项的表格视图。
表格 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 ) |
创建新的表格视图采用给定 parent .
创建新的表格视图采用给定 rows and columns ,和采用给定 parent .
[虚拟]
QTableWidget::
~QTableWidget
()
销毁此 QTableWidget .
[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 引入。
返回单元格显示 Widget,在给定 row and column .
注意: 表格拥有 Widget 的所有权。
该函数在 Qt 4.1 引入。
另请参阅 setCellWidget ().
[slot]
void
QTableWidget::
clear
()
移除视图中的所有项。这还会移除所有选定和 Header (头部)。若不想移除 Header (头部),使用 QTableWidget::clearContents ()。表格尺度保持不变。
[slot]
void
QTableWidget::
clearContents
()
从视图移除不在 Header (头部) 中的所有项。这还会移除所有选定。表格尺度保持不变。
该函数在 Qt 4.2 引入。
关闭持久编辑器为 item .
另请参阅 openPersistentEditor () 和 isPersistentEditorOpen ().
返回列号为 item .
返回列数。
注意: 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.
该函数在 Qt 4.1 引入。
返回当前项的列号。
另请参阅 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 ().
[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 ().
查找项匹配 text 使用给定 flags .
返回水平 Header (头部) 项为列
column
,若有设置;否则返回
nullptr
.
另请参阅 setHorizontalHeaderItem ().
[protected]
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 .
返回是否打开持久编辑器为项 item .
该函数在 Qt 5.10 引入。
另请参阅 openPersistentEditor () 和 closePersistentEditor ().
返回项为给定
row
and
column
若有设置;否则返回
nullptr
.
另请参阅 setItem ().
[signal]
void
QTableWidget::
itemActivated
(
QTableWidgetItem
*
item
)
此信号被发射当指定 item 被激活
返回的项指针在给定
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 ().
[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 被打开,或当移入项时按下鼠标按钮。
[protected]
QTableWidgetItem
*QTableWidget::
itemFromIndex
(const
QModelIndex
&
index
) const
返回指针指向 QTableWidgetItem 关联给定 index .
[signal]
void
QTableWidget::
itemPressed
(
QTableWidgetItem
*
item
)
此信号被发射每当按下表格项时。 item 指定被按下项。
返回用于表格的项原型。
另请参阅 setItemPrototype ().
[signal]
void
QTableWidget::
itemSelectionChanged
()
此信号被发射每当选定改变时。
另请参阅 selectedItems () 和 QTableWidgetItem::isSelected ().
[protected]
QList
<
QTableWidgetItem
*> QTableWidget::
项
(const
QMimeData
*
data
) const
返回的指针列表项包含在 data 对象。若未创建对象通过 QTreeWidget 在同一过程中,列表为空。
[virtual protected]
QMimeData
*QTableWidget::
mimeData
(const
QList
<
QTableWidgetItem
*>
项
) const
返回的对象包含序列化描述为指定 项 。用于描述项的格式获取自 mimeTypes () 函数。
若项列表为空,返回 0 而不是序列化空列表。
[virtual protected]
QStringList
QTableWidget::
mimeTypes
() const
返回可以用于描述 QTableWidget 项列表的 MIME (多用途 Internet 邮件扩展) 类型列表。
另请参阅 mimeData ().
打开编辑器为给出 item 。编辑器仍然打开在编辑之后。
另请参阅 closePersistentEditor () 和 isPersistentEditorOpen ().
删除单元格设置 Widget 指示通过 row and column .
该函数在 Qt 4.3 引入。
[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);
该函数在 Qt 4.1 引入。
另请参阅 cellWidget ().
将此表格模型中的列数设为 columns 。若这小于 columnCount (),不想要列中的数据被丢弃。
注意: setter 函数对于特性 columnCount .
另请参阅 columnCount () 和 setRowCount ().
将当前单元格设为单元格在位置 ( row , column ).
从属当前 选定模式 ,还可以选中单元格。
该函数在 Qt 4.1 引入。
另请参阅 setCurrentItem (), currentRow (),和 currentColumn ().
将当前单元格设为单元格在位置 ( row , column ),使用给定 命令 .
该函数在 Qt 4.4 引入。
另请参阅 setCurrentItem (), currentRow (),和 currentColumn ().
将当前项设为 item .
除非选定模式为 NoSelection ,项还被选中。
另请参阅 currentItem () 和 setCurrentCell ().
将当前项设为 item ,使用给定 命令 .
该函数在 Qt 4.4 引入。
另请参阅 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 ) 和 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 .
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 从头部 (不删除它)。
该函数在 Qt 4.1 引入。
移除项在 row and column 从表格不删除它。
移除垂直 Header (头部) 项在 row 从头部 (不删除它)。
该函数在 Qt 4.1 引入。
返回垂直 Header (头部) 项为行 row .
另请参阅 setVerticalHeaderItem ().
返回视觉列为给定 logicalColumn .
返回项所占据的视口矩形为 item .
返回视觉行为给定 logicalRow .