- Qt 6.10
- Qt Widgets
- C++ Classes
- QTableWidgetItem
- Qt 6.10.2 Reference Documentation

# QTableWidgetItem Class

The QTableWidgetItem class provides an item for use with the QTableWidget class. More...

Header: | `#include <QTableWidgetItem>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Widgets)` `target_link_libraries(mytarget PRIVATE Qt6::Widgets)`
qmake: | `QT += widgets`

- List of all members, including inherited members

## Public Types

enum | ItemType { Type, UserType }

## Public Functions

| QTableWidgetItem(int type = Type)
| QTableWidgetItem(const QString &text, int type = Type)
| QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type)
| QTableWidgetItem(const QTableWidgetItem &other)
virtual | ~QTableWidgetItem()
virtual QTableWidgetItem * | clone() const
virtual QVariant | data(int role) const
virtual void | read(QDataStream &in)
virtual void | setData(int role, const QVariant &value)
virtual void | write(QDataStream &out) const
virtual bool | operator<(const QTableWidgetItem &other) const
QTableWidgetItem & | operator=(const QTableWidgetItem &other)

## Related Non-Members

QDataStream & | operator<<(QDataStream &out, const QTableWidgetItem &item)
QDataStream & | operator>>(QDataStream &in, QTableWidgetItem &item)

## Detailed Description

Table items are used to hold pieces of information for table widgets. Items usually contain text, icons, or checkboxes

The QTableWidgetItem class is a convenience class that replaces the `QTableItem` class in Qt 3. It provides an item for use with the QTableWidget class.

Top-level items are constructed without a parent then inserted at the position specified by a pair of row and column numbers:

         QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
             pow(row, column+1)));
         tableWidget->setItem(row, column, newItem);

Each item can have its own background brush which is set with the setBackground() function. The current background brush can be found with background(). The text label for each item can be rendered with its own font and brush. These are specified with the setFont() and setForeground() functions, and read with font() and foreground().

By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target. Each item's flags can be changed by calling setFlags() with the appropriate value (see Qt::ItemFlags). Checkable items can be checked and unchecked with the setCheckState() function. The corresponding checkState() function indicates whether the item is currently checked.

### Subclassing

When subclassing QTableWidgetItem to provide custom items, it is possible to define new types for them so that they can be distinguished from standard items. The constructors for subclasses that require this feature need to call the base class constructor with a new type value equal to or greater than UserType.

See also QTableWidget, Model/View Programming, QListWidgetItem, and QTreeWidgetItem.

## Member Type Documentation

### enum QTableWidgetItem::ItemType

This enum describes the types that are used to describe table widget items.

Constant | Value | Description
--- | --- | ---
`QTableWidgetItem::Type` | `0` | The default type for table widget items.
`QTableWidgetItem::UserType` | `1000` | The minimum value for custom types. Values below UserType are reserved by Qt.

You can define new user types in QTableWidgetItem subclasses to ensure that custom items are treated specially.

See also type().

## Member Function Documentation

### `[explicit]` QTableWidgetItem::QTableWidgetItem(int type = Type)

Constructs a table item of the specified type that does not belong to any table.

See also type().

### `[explicit]` QTableWidgetItem::QTableWidgetItem(const QString &text, int type = Type)

Constructs a table item with the given text.

See also type().

### `[explicit]` QTableWidgetItem::QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type)

Constructs a table item with the given icon and text.

See also type().

### QTableWidgetItem::QTableWidgetItem(const QTableWidgetItem &other)

Constructs a copy of other. Note that type() and tableWidget() are not copied.

This function is useful when reimplementing clone().

See also data() and flags().

### `[virtual noexcept]` QTableWidgetItem::~QTableWidgetItem()

Destroys the table item.

### `[virtual]` QTableWidgetItem *QTableWidgetItem::clone() const

Creates a copy of the item.

### `[virtual]` QVariant QTableWidgetItem::data(int role) const

Returns the item's data for the given role.

See also setData().

### `[virtual]` void QTableWidgetItem::read(QDataStream &in)

Reads the item from stream in.

See also write().

### `[virtual]` void QTableWidgetItem::setData(int role, const QVariant &value)

Sets the item's data for the given role to the specified value.

Note: The default implementation treats Qt::EditRole and Qt::DisplayRole as referring to the same data.

See also Qt::ItemDataRole and data().

### `[virtual]` void QTableWidgetItem::write(QDataStream &out) const

Writes the item to stream out.

See also read().

### `[virtual]` bool QTableWidgetItem::operator<(const QTableWidgetItem &other) const

Returns `true` if the item is less than the other item; otherwise returns false.

### QTableWidgetItem &QTableWidgetItem::operator=(const QTableWidgetItem &other)

Assigns other's data and flags to this item. Note that type() and tableWidget() are not copied.

This function is useful when reimplementing clone().

See also data() and flags().

## Related Non-Members

### QDataStream &operator<<(QDataStream &out, const QTableWidgetItem &item)

Writes the table widget item item to stream out.

This operator uses QTableWidgetItem::write().

See also Serializing Qt Data Types.

### QDataStream &operator>>(QDataStream &in, QTableWidgetItem &item)

Reads a table widget item from stream in into item.

This operator uses QTableWidgetItem::read().

See also Serializing Qt Data Types.