
We bake cookies in your browser for a better experience. Using this site means that you consent.Read More
TheQTableWidget class provides an item-based table view with a default model.More...
| Header: | #include <QTableWidget> |
| Inherits: | QTableView |
| QTableWidget(QWidget * parent = 0) | |
| QTableWidget(int rows, int columns, QWidget * parent = 0) | |
| ~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 |
| 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() |
| 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) |
| QModelIndex | indexFromItem(QTableWidgetItem * item) const |
| QTableWidgetItem * | itemFromIndex(const QModelIndex & index) const |
| QList<QTableWidgetItem *> | items(const QMimeData * data) const |
| virtual QMimeData * | mimeData(const QList<QTableWidgetItem *> items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
TheQTableWidget class provides an item-based table view with a default model.
Table widgets provide standard table display facilities for applications. The items in aQTableWidget are provided byQTableWidgetItem.
If you want a table that uses your own data model you should useQTableView rather than this class.
Table widgets can be constructed with the required numbers of rows and columns:
tableWidget=newQTableWidget(12,3,this);
Alternatively, tables can be constructed without a given size and resized later:
tableWidget=newQTableWidget(this); tableWidget->setRowCount(10); tableWidget->setColumnCount(5);
Items are created ouside the table (with no parent widget) and inserted into the table withsetItem():
QTableWidgetItem*newItem=newQTableWidgetItem(tr("%1").arg( (row+1)*(column+1))); tableWidget->setItem(row, column, newItem);
If you want to enable sorting in your table widget, do so after you have populated it with items, otherwise sorting may interfere with the insertion order (seesetItem() for details).
Tables can be given both horizontal and vertical headers. The simplest way to create the headers is to supply a list of strings to thesetHorizontalHeaderLabels() andsetVerticalHeaderLabels() functions. These will provide simple textual headers for the table's columns and rows. More sophisticated headers can be created from existing table items that are usually constructed outside the table. For example, we can construct a table item with an icon and aligned text, and use it as the header for a particular column:
QTableWidgetItem*cubesHeaderItem=newQTableWidgetItem(tr("Cubes")); cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png"))); cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);
The number of rows in the table can be found withrowCount(), and the number of columns withcolumnCount(). The table can be cleared with theclear() function.
![]() | ![]() | ![]() |
| AWindows XP style table widget. | AMacintosh style table widget. | APlastique style table widget. |
See alsoQTableWidgetItem,QTableView, andModel/View Programming.
This property holds the number of columns in the table.
By default, for a table constructed without row and column counts, this property contains a value of 0.
Access functions:
| int | columnCount() const |
| void | setColumnCount(int columns) |
This property holds the number of rows in the table.
By default, for a table constructed without row and column counts, this property contains a value of 0.
Access functions:
| int | rowCount() const |
| void | setRowCount(int rows) |
Creates a new table view with the givenparent.
Creates a new table view with the givenrows andcolumns, and with the givenparent.
Destroys thisQTableWidget.
[signal]void QTableWidget::cellActivated(int row,int column)This signal is emitted when the cell specified byrow andcolumn has been activated
This function was introduced in Qt 4.1.
[signal]void QTableWidget::cellChanged(int row,int column)This signal is emitted whenever the data of the item in the cell specified byrow andcolumn has changed.
This function was introduced in Qt 4.1.
[signal]void QTableWidget::cellClicked(int row,int column)This signal is emitted whenever a cell in the table is clicked. Therow andcolumn specified is the cell that was clicked.
This function was introduced in Qt 4.1.
[signal]void QTableWidget::cellDoubleClicked(int row,int column)This signal is emitted whenever a cell in the table is double clicked. Therow andcolumn specified is the cell that was double clicked.
This function was introduced in Qt 4.1.
[signal]void QTableWidget::cellEntered(int row,int column)This signal is emitted when the mouse cursor enters a cell. The cell is specified byrow andcolumn.
This signal is only emitted whenmouseTracking is turned on, or when a mouse button is pressed while moving into an item.
This function was introduced in Qt 4.1.
[signal]void QTableWidget::cellPressed(int row,int column)This signal is emitted whenever a cell in the table is pressed. Therow andcolumn specified is the cell that was pressed.
This function was introduced in Qt 4.1.
Returns the widget displayed in the cell in the givenrow andcolumn.
Note:The table takes ownership of the widget.
This function was introduced in Qt 4.1.
See alsosetCellWidget().
[slot]void QTableWidget::clear()Removes all items in the view. This will also remove all selections. The table dimensions stay the same.
[slot]void QTableWidget::clearContents()Removes all items not in the headers from the view. This will also remove all selections. The table dimensions stay the same.
This function was introduced in Qt 4.2.
Closes the persistent editor foritem.
See alsoopenPersistentEditor().
Returns the column for theitem.
[signal]void QTableWidget::currentCellChanged(int currentRow,int currentColumn,int previousRow,int previousColumn)This signal is emitted whenever the current cell changes. The cell specified bypreviousRow andpreviousColumn is the cell that previously had the focus, the cell specified bycurrentRow andcurrentColumn is the new current cell.
This function was introduced in Qt 4.1.
Returns the column of the current item.
See alsocurrentRow() andsetCurrentCell().
Returns the current item.
See alsosetCurrentItem().
[signal]void QTableWidget::currentItemChanged(QTableWidgetItem * current,QTableWidgetItem * previous)This signal is emitted whenever the current item changes. Theprevious item is the item that previously had the focus,current is the new current item.
Returns the row of the current item.
See alsocurrentColumn() andsetCurrentCell().
[virtual protected]void QTableWidget::dropEvent(QDropEvent * event)Reimplemented fromQWidget::dropEvent().
[virtual protected]bool QTableWidget::dropMimeData(int row,int column, constQMimeData * data,Qt::DropAction action)Handles thedata supplied by a drag and drop operation that ended with the givenaction in the givenrow andcolumn. Returns true if the data and action can be handled by the model; otherwise returns false.
See alsosupportedDropActions().
Starts editing theitem if it is editable.
[virtual protected]bool QTableWidget::event(QEvent * e)Reimplemented fromQObject::event().
Finds items that matches thetext using the givenflags.
Returns the horizontal header item for column,column, if one has been set; otherwise returns 0.
See alsosetHorizontalHeaderItem().
[protected]QModelIndex QTableWidget::indexFromItem(QTableWidgetItem * item) constReturns theQModelIndex assocated with the givenitem.
[slot]void QTableWidget::insertColumn(int column)Inserts an empty column into the table atcolumn.
[slot]void QTableWidget::insertRow(int row)Inserts an empty row into the table atrow.
Returns the item for the givenrow andcolumn if one has been set; otherwise returns 0.
See alsosetItem().
[signal]void QTableWidget::itemActivated(QTableWidgetItem * item)This signal is emitted when the specifieditem has been activated
Returns a pointer to the item at the givenpoint, or returns 0 ifpoint is not covered by an item in the table widget.
See alsoitem().
Returns the item at the position equivalent toQPoint(ax,ay) in the table widget's coordinate system, or returns 0 if the specified point is not covered by an item in the table widget.
See alsoitem().
[signal]void QTableWidget::itemChanged(QTableWidgetItem * item)This signal is emitted whenever the data ofitem has changed.
[signal]void QTableWidget::itemClicked(QTableWidgetItem * item)This signal is emitted whenever an item in the table is clicked. Theitem specified is the item that was clicked.
[signal]void QTableWidget::itemDoubleClicked(QTableWidgetItem * item)This signal is emitted whenever an item in the table is double clicked. Theitem specified is the item that was double clicked.
[signal]void QTableWidget::itemEntered(QTableWidgetItem * item)This signal is emitted when the mouse cursor enters an item. Theitem is the item entered.
This signal is only emitted whenmouseTracking is turned on, or when a mouse button is pressed while moving into an item.
[protected]QTableWidgetItem * QTableWidget::itemFromIndex(constQModelIndex & index) constReturns a pointer to theQTableWidgetItem assocated with the givenindex.
[signal]void QTableWidget::itemPressed(QTableWidgetItem * item)This signal is emitted whenever an item in the table is pressed. Theitem specified is the item that was pressed.
Returns the item prototype used by the table.
See alsosetItemPrototype().
[signal]void QTableWidget::itemSelectionChanged()This signal is emitted whenever the selection changes.
See alsoselectedItems() andQTableWidgetItem::isSelected().
[protected]QList<QTableWidgetItem *> QTableWidget::items(constQMimeData * data) constReturns a list of pointers to the items contained in thedata object. If the object was not created by aQTreeWidget in the same process, the list is empty.
[virtual protected]QMimeData * QTableWidget::mimeData(constQList<QTableWidgetItem *> items) constReturns an object that contains a serialized description of the specifieditems. The format used to describe the items is obtained from themimeTypes() function.
If the list of items is empty, 0 is returned rather than a serialized empty list.
[virtual protected]QStringList QTableWidget::mimeTypes() constReturns a list of MIME types that can be used to describe a list of tablewidget items.
See alsomimeData().
Opens an editor for the giveitem. The editor remains open after editing.
See alsoclosePersistentEditor().
Removes the widget set on the cell indicated byrow andcolumn.
This function was introduced in Qt 4.3.
[slot]void QTableWidget::removeColumn(int column)Removes the columncolumn and all its items from the table.
[slot]void QTableWidget::removeRow(int row)Removes the rowrow and all its items from the table.
Returns the row for theitem.
[slot]void QTableWidget::scrollToItem(constQTableWidgetItem * item,QAbstractItemView::ScrollHint hint = EnsureVisible)Scrolls the view if necessary to ensure that theitem is visible. Thehint parameter specifies more precisely where theitem should be located after the operation.
Returns a list of all selected items.
This function returns a list of pointers to the contents of the selected cells. Use theselectedIndexes() function to retrieve the complete selectionincluding empty cells.
See alsoselectedIndexes().
Returns a list of all selected ranges.
See alsoQTableWidgetSelectionRange.
Sets the givenwidget to be displayed in the cell in the givenrow andcolumn, passing the ownership of the widget to the table.
If cell widget A is replaced with cell widget B, cell widget A will be deleted. For example, in the code snippet below, theQLineEdit object will be deleted.
This function was introduced in Qt 4.1.
See alsocellWidget().
Sets the current cell to be the cell at position (row,column).
Depending on the currentselection mode, the cell may also be selected.
This function was introduced in Qt 4.1.
See alsosetCurrentItem(),currentRow(), andcurrentColumn().
Sets the current cell to be the cell at position (row,column), using the givencommand.
This function was introduced in Qt 4.4.
See alsosetCurrentItem(),currentRow(), andcurrentColumn().
Sets the current item toitem.
Unless the selection mode isNoSelection, the item is also be selected.
See alsocurrentItem() andsetCurrentCell().
Sets the current item to beitem, using the givencommand.
This function was introduced in Qt 4.4.
See alsocurrentItem() andsetCurrentCell().
Sets the horizontal header item for columncolumn toitem.
See alsohorizontalHeaderItem().
Sets the horizontal header labels usinglabels.
Sets the item for the givenrow andcolumn toitem.
The table takes ownership of the item.
Note that if sorting is enabled (seesortingEnabled) andcolumn is the current sort column, therow will be moved to the sorted position determined byitem.
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 samerow argument for all items in the same row (i.e. setItem() will not move the row).
Sets the item prototype for the table to the specifieditem.
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 aQTableWidgetItem subclass and want to make sure thatQTableWidget creates instances of your subclass.
The table takes ownership of the prototype.
See alsoitemPrototype().
Selects or deselects therange depending onselect.
Sets the vertical header item for rowrow toitem.
See alsoverticalHeaderItem().
Sets the vertical header labels usinglabels.
Sorts all the rows in the table widget based oncolumn andorder.
[virtual protected]Qt::DropActions QTableWidget::supportedDropActions() constReturns the drop actions supported by this view.
See alsoQt::DropActions.
Removes the horizontal header item atcolumn from the header without deleting it.
This function was introduced in Qt 4.1.
Removes the item atrow andcolumn from the table without deleting it.
Removes the vertical header item atrow from the header without deleting it.
This function was introduced in Qt 4.1.
Returns the vertical header item for rowrow.
See alsosetVerticalHeaderItem().
Returns the visual column of the givenlogicalColumn.
Returns the rectangle on the viewport occupied by the item atitem.
Returns the visual row of the givenlogicalRow.
© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of theGNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.