|  | Home · All Classes · Modules

# QTableWidget Class Reference
[QtGui module]

The QTableWidget class provides an item-based table view with a default model. More...

Inherits QTableView.

### Methods

- __init__ (self, QWidget parent = None)
- __init__ (self, int rows, int columns, QWidget parent = None)
- QWidget cellWidget (self, int row, int column)
- clear (self)
- clearContents (self)
- closePersistentEditor (self, QTableWidgetItem item)
- int column (self, QTableWidgetItem item)
- int columnCount (self)
- int currentColumn (self)
- QTableWidgetItem currentItem (self)
- int currentRow (self)
- dropEvent (self, QDropEvent event)
- bool dropMimeData (self, int row, int column, QMimeData data, Qt.DropAction action)
- editItem (self, QTableWidgetItem item)
- bool event (self, QEvent e)
- list-of-QTableWidgetItem findItems (self, QString text, Qt.MatchFlags flags)
- QTableWidgetItem horizontalHeaderItem (self, int column)
- QModelIndex indexFromItem (self, QTableWidgetItem item)
- insertColumn (self, int column)
- insertRow (self, int row)
- bool isItemSelected (self, QTableWidgetItem item)
- bool isSortingEnabled (self)
- QTableWidgetItem item (self, int row, int column)
- QTableWidgetItem itemAt (self, QPoint p)
- QTableWidgetItem itemAt (self, int ax, int ay)
- QTableWidgetItem itemFromIndex (self, QModelIndex index)
- QTableWidgetItem itemPrototype (self)
- list-of-QTableWidgetItem items (self, QMimeData data)
- QMimeData mimeData (self, list-of-QTableWidgetItem items)
- QStringList mimeTypes (self)
- openPersistentEditor (self, QTableWidgetItem item)
- removeCellWidget (self, int arow, int acolumn)
- removeColumn (self, int column)
- removeRow (self, int row)
- int row (self, QTableWidgetItem item)
- int rowCount (self)
- scrollToItem (self, QTableWidgetItem item, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)
- list-of-QTableWidgetItem selectedItems (self)
- list-of-QTableWidgetSelectionRange selectedRanges (self)
- setCellWidget (self, int row, int column, QWidget widget)
- setColumnCount (self, int columns)
- setCurrentCell (self, int row, int column)
- setCurrentCell (self, int row, int column, QItemSelectionModel.SelectionFlags command)
- setCurrentItem (self, QTableWidgetItem item)
- setCurrentItem (self, QTableWidgetItem item, QItemSelectionModel.SelectionFlags command)
- setHorizontalHeaderItem (self, int column, QTableWidgetItem item)
- setHorizontalHeaderLabels (self, QStringList labels)
- setItem (self, int row, int column, QTableWidgetItem item)
- setItemPrototype (self, QTableWidgetItem item)
- setItemSelected (self, QTableWidgetItem item, bool select)
- setRangeSelected (self, QTableWidgetSelectionRange range, bool select)
- setRowCount (self, int rows)
- setSortingEnabled (self, bool enable)
- setVerticalHeaderItem (self, int row, QTableWidgetItem item)
- setVerticalHeaderLabels (self, QStringList labels)
- sortItems (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
- Qt.DropActions supportedDropActions (self)
- QTableWidgetItem takeHorizontalHeaderItem (self, int column)
- QTableWidgetItem takeItem (self, int row, int column)
- QTableWidgetItem takeVerticalHeaderItem (self, int row)
- QTableWidgetItem verticalHeaderItem (self, int row)
- int visualColumn (self, int logicalColumn)
- QRect visualItemRect (self, QTableWidgetItem item)
- int visualRow (self, int logicalRow)

### Qt Signals

- void cellActivated (int,int)
- void cellChanged (int,int)
- void cellClicked (int,int)
- void cellDoubleClicked (int,int)
- void cellEntered (int,int)
- void cellPressed (int,int)
- void currentCellChanged (int,int,int,int)
- void currentItemChanged (QTableWidgetItem*,QTableWidgetItem*)
- void itemActivated (QTableWidgetItem*)
- void itemChanged (QTableWidgetItem*)
- void itemClicked (QTableWidgetItem*)
- void itemDoubleClicked (QTableWidgetItem*)
- void itemEntered (QTableWidgetItem*)
- void itemPressed (QTableWidgetItem*)
- void itemSelectionChanged ()

## Detailed Description

The QTableWidget class provides an item-based table view with a default model.

Table widgets provide standard table display facilities for applications. The items in a QTableWidget are provided by QTableWidgetItem.

If you want a table that uses your own data model you should use QTableView rather than this class.

Table widgets can be constructed with the required numbers of rows and columns:

         tableWidget = new QTableWidget(12, 3, this);

Alternatively, tables can be constructed without a given size and resized later:

         tableWidget = new QTableWidget(this);
         tableWidget->setRowCount(10);
         tableWidget->setColumnCount(5);

Items are created ouside 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);

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 (see setItem() 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 the setHorizontalHeaderLabels() and setVerticalHeaderLabels() 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 = new QTableWidgetItem(tr("Cubes"));
         cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
         cubesHeaderItem->setTextAlignment(Qt.AlignVCenter);

The number of rows in the table can be found with rowCount(), and the number of columns with columnCount(). The table can be cleared with the clear() function.

A Windows XP style table widget. | A Macintosh style table widget. | A Plastique style table widget.

## Method Documentation

### QTableWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new table view with the given parent.

### QTableWidget.__init__ (self, int rows, int columns, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new table view with the given rows and columns, and with the given parent.

### QWidget QTableWidget.cellWidget (self, int row, int column)

Returns the widget displayed in the cell in the given row and column.

Note: The table takes ownership of the widget.

This function was introduced in Qt 4.1.

See also setCellWidget().

### QTableWidget.clear (self)

This method is also a Qt slot with the C++ signature `void clear()`.

Removes all items in the view. This will also remove all selections. The table dimensions stay the same.

### QTableWidget.clearContents (self)

This method is also a Qt slot with the C++ signature `void 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.

### QTableWidget.closePersistentEditor (self, QTableWidgetItem item)

Closes the persistent editor for item.

See also openPersistentEditor().

### int QTableWidget.column (self, QTableWidgetItem item)

Returns the column for the item.

### int QTableWidget.columnCount (self)

### int QTableWidget.currentColumn (self)

Returns the column of the current item.

See also currentRow() and setCurrentCell().

### QTableWidgetItem QTableWidget.currentItem (self)

Returns the current item.

See also setCurrentItem().

### int QTableWidget.currentRow (self)

Returns the row of the current item.

See also currentColumn() and setCurrentCell().

### QTableWidget.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

### bool QTableWidget.dropMimeData (self, int row, int column, QMimeData data, Qt.DropAction action)

Handles the data supplied by a drag and drop operation that ended with the given action in the given row and column. Returns true if the data and action can be handled by the model; otherwise returns false.

See also supportedDropActions().

### QTableWidget.editItem (self, QTableWidgetItem item)

Starts editing the item if it is editable.

### bool QTableWidget.event (self, QEvent e)

Reimplemented from QObject.event().

### list-of-QTableWidgetItem QTableWidget.findItems (self, QString text, Qt.MatchFlags flags)

Finds items that matches the text using the given flags.

### QTableWidgetItem QTableWidget.horizontalHeaderItem (self, int column)

Returns the horizontal header item for column, column, if one has been set; otherwise returns 0.

See also setHorizontalHeaderItem().

### QModelIndex QTableWidget.indexFromItem (self, QTableWidgetItem item)

Returns the QModelIndex assocated with the given item.

### QTableWidget.insertColumn (self, int column)

This method is also a Qt slot with the C++ signature `void insertColumn(int)`.

Inserts an empty column into the table at column.

### QTableWidget.insertRow (self, int row)

This method is also a Qt slot with the C++ signature `void insertRow(int)`.

Inserts an empty row into the table at row.

### bool QTableWidget.isItemSelected (self, QTableWidgetItem item)

### bool QTableWidget.isSortingEnabled (self)

### QTableWidgetItem QTableWidget.item (self, int row, int column)

Returns the item for the given row and column if one has been set; otherwise returns 0.

See also setItem().

### QTableWidgetItem QTableWidget.itemAt (self, QPoint p)

Returns a pointer to the item at the given point, or returns 0 if point is not covered by an item in the table widget.

See also item().

### QTableWidgetItem QTableWidget.itemAt (self, int ax, int ay)

Returns the item at the position equivalent to QPoint(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 also item().

### QTableWidgetItem QTableWidget.itemFromIndex (self, QModelIndex index)

Returns a pointer to the QTableWidgetItem assocated with the given index.

### QTableWidgetItem QTableWidget.itemPrototype (self)

Returns the item prototype used by the table.

See also setItemPrototype().

### list-of-QTableWidgetItem QTableWidget.items (self, QMimeData data)

Returns a list of pointers to the items contained in the data object. If the object was not created by a QTreeWidget in the same process, the list is empty.

### QMimeData QTableWidget.mimeData (self, list-of-QTableWidgetItem items)

The QMimeData result

Returns an object that contains a serialized description of the specified items. The format used to describe the items is obtained from the mimeTypes() function.

If the list of items is empty, 0 is returned rather than a serialized empty list.

### QStringList QTableWidget.mimeTypes (self)

Returns a list of MIME types that can be used to describe a list of tablewidget items.

See also mimeData().

### QTableWidget.openPersistentEditor (self, QTableWidgetItem item)

Opens an editor for the give item. The editor remains open after editing.

See also closePersistentEditor().

### QTableWidget.removeCellWidget (self, int arow, int acolumn)

Removes the widget set on the cell indicated by row and column.

This function was introduced in Qt 4.3.

### QTableWidget.removeColumn (self, int column)

This method is also a Qt slot with the C++ signature `void removeColumn(int)`.

Removes the column column and all its items from the table.

### QTableWidget.removeRow (self, int row)

This method is also a Qt slot with the C++ signature `void removeRow(int)`.

Removes the row row and all its items from the table.

### int QTableWidget.row (self, QTableWidgetItem item)

Returns the row for the item.

### int QTableWidget.rowCount (self)

### QTableWidget.scrollToItem (self, QTableWidgetItem item, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

This method is also a Qt slot with the C++ signature `void scrollToItem(const QTableWidgetItem*,QAbstractItemView::ScrollHint = QAbstractItemView.EnsureVisible)`.

Scrolls the view if necessary to ensure that the item is visible. The hint parameter specifies more precisely where the item should be located after the operation.

### list-of-QTableWidgetItem QTableWidget.selectedItems (self)

Returns a list of all selected items.

This function returns a list of pointers to the contents of the selected cells. Use the selectedIndexes() function to retrieve the complete selection including empty cells.

See also selectedIndexes().

### list-of-QTableWidgetSelectionRange QTableWidget.selectedRanges (self)

Returns a list of all selected ranges.

See also QTableWidgetSelectionRange.

### QTableWidget.setCellWidget (self, int row, int column, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be displayed in the cell in the given row and column, 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, the QLineEdit object will be deleted.

     setCellWidget(index, new QLineEdit);
     ...
     setCellWidget(index, new QTextEdit);

This function was introduced in Qt 4.1.

See also cellWidget().

### QTableWidget.setColumnCount (self, int columns)

### QTableWidget.setCurrentCell (self, int row, int column)

Sets the current cell to be the cell at position (row, column).

Depending on the current selection mode, the cell may also be selected.

This function was introduced in Qt 4.1.

See also setCurrentItem(), currentRow(), and currentColumn().

### QTableWidget.setCurrentCell (self, int row, int column, QItemSelectionModel.SelectionFlags command)

Sets the current cell to be the cell at position (row, column), using the given command.

This function was introduced in Qt 4.4.

See also setCurrentItem(), currentRow(), and currentColumn().

### QTableWidget.setCurrentItem (self, QTableWidgetItem item)

Sets the current item to item.

Unless the selection mode is NoSelection, the item is also be selected.

See also currentItem() and setCurrentCell().

### QTableWidget.setCurrentItem (self, QTableWidgetItem item, QItemSelectionModel.SelectionFlags command)

Sets the current item to be item, using the given command.

This function was introduced in Qt 4.4.

See also currentItem() and setCurrentCell().

### QTableWidget.setHorizontalHeaderItem (self, int column, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the horizontal header item for column column to item.

See also horizontalHeaderItem().

### QTableWidget.setHorizontalHeaderLabels (self, QStringList labels)

Sets the horizontal header labels using labels.

### QTableWidget.setItem (self, int row, int column, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the item for the given row and column to item.

The table takes ownership of the item.

Note that if sorting is enabled (see 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).

See also item() and takeItem().

### QTableWidget.setItemPrototype (self, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the item prototype for the table to the specified 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.

The table takes ownership of the prototype.

See also itemPrototype().

### QTableWidget.setItemSelected (self, QTableWidgetItem item, bool select)

### QTableWidget.setRangeSelected (self, QTableWidgetSelectionRange range, bool select)

Selects or deselects the range depending on select.

### QTableWidget.setRowCount (self, int rows)

### QTableWidget.setSortingEnabled (self, bool enable)

### QTableWidget.setVerticalHeaderItem (self, int row, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the vertical header item for row row to item.

See also verticalHeaderItem().

### QTableWidget.setVerticalHeaderLabels (self, QStringList labels)

Sets the vertical header labels using labels.

### QTableWidget.sortItems (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Sorts all the rows in the table widget based on column and order.

### Qt.DropActions QTableWidget.supportedDropActions (self)

Returns the drop actions supported by this view.

See also Qt.DropActions.

### QTableWidgetItem QTableWidget.takeHorizontalHeaderItem (self, int column)

The QTableWidgetItem result

Removes the horizontal header item at column from the header without deleting it.

This function was introduced in Qt 4.1.

### QTableWidgetItem QTableWidget.takeItem (self, int row, int column)

The QTableWidgetItem result

Removes the item at row and column from the table without deleting it.

### QTableWidgetItem QTableWidget.takeVerticalHeaderItem (self, int row)

The QTableWidgetItem result

Removes the vertical header item at row from the header without deleting it.

This function was introduced in Qt 4.1.

### QTableWidgetItem QTableWidget.verticalHeaderItem (self, int row)

Returns the vertical header item for row row.

See also setVerticalHeaderItem().

### int QTableWidget.visualColumn (self, int logicalColumn)

Returns the visual column of the given logicalColumn.

### QRect QTableWidget.visualItemRect (self, QTableWidgetItem item)

Returns the rectangle on the viewport occupied by the item at item.

### int QTableWidget.visualRow (self, int logicalRow)

Returns the visual row of the given logicalRow.

## Qt Signal Documentation

### void cellActivated (int,int)

This is the default overload of this signal.

This signal is emitted when the cell specified by row and column has been activated

This function was introduced in Qt 4.1.

### void cellChanged (int,int)

This is the default overload of this signal.

This signal is emitted whenever the data of the item in the cell specified by row and column has changed.

This function was introduced in Qt 4.1.

### void cellClicked (int,int)

This is the default overload of this signal.

This signal is emitted whenever a cell in the table is clicked. The row and column specified is the cell that was clicked.

This function was introduced in Qt 4.1.

### void cellDoubleClicked (int,int)

This is the default overload of this signal.

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.

This function was introduced in Qt 4.1.

### void cellEntered (int,int)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters a cell. The cell is specified by 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.

This function was introduced in Qt 4.1.

### void cellPressed (int,int)

This is the default overload of this signal.

This signal is emitted whenever a cell in the table is pressed. The row and column specified is the cell that was pressed.

This function was introduced in Qt 4.1.

### void currentCellChanged (int,int,int,int)

This is the default overload of this signal.

This signal is emitted whenever the current cell changes. The cell specified by previousRow and previousColumn is the cell that previously had the focus, the cell specified by currentRow and currentColumn is the new current cell.

This function was introduced in Qt 4.1.

### void currentItemChanged (QTableWidgetItem*,QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the current item changes. The previous item is the item that previously had the focus, current is the new current item.

### void itemActivated (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the specified item has been activated

### void itemChanged (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the data of item has changed.

### void itemClicked (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is clicked. The item specified is the item that was clicked.

### void itemDoubleClicked (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is double clicked. The item specified is the item that was double clicked.

### void itemEntered (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters an item. The item is the item entered.

This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.

### void itemPressed (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is pressed. The item specified is the item that was pressed.

### void itemSelectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also selectedItems() and QTableWidgetItem.isSelected().