QStandardItem Class▲
-
Header: QStandardItem
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
-
qmake: QT += gui
-
Group: QStandardItem is part of model-view
Detailed Description▲
Items usually contain text, icons, or checkboxes.
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(). Checkable items can be checked and unchecked with the setCheckState() function. The corresponding checkState() function indicates whether the item is currently checked.
You can store application-specific data in an item by calling setData().
Each item can have a two-dimensional table of child items. This makes it possible to build hierarchies of items. The typical hierarchy is the tree, in which case the child table is a table with a single column (a list).
The dimensions of the child table can be set with setRowCount() and setColumnCount(). Items can be positioned in the child table with setChild(). Get a pointer to a child item with child(). New rows and columns of children can also be inserted with insertRow() and insertColumn(), or appended with appendRow() and appendColumn(). When using the append and insert functions, the dimensions of the child table will grow as needed.
An existing row of children can be removed with removeRow() or takeRow(); correspondingly, a column can be removed with removeColumn() or takeColumn().
An item's children can be sorted by calling sortChildren().
Subclassing▲
When subclassing QStandardItem to provide custom items, it is possible to define new types for them so that they can be distinguished from the base class. The type() function should be reimplemented to return a new type value equal to or greater than UserType.
Reimplement data() and setData() if you want to perform custom handling of data queries and/or control how an item's data is represented.
Reimplement clone() if you want QStandardItemModel to be able to create instances of your custom item class on demand (see QStandardItemModel::setItemPrototype()).
Reimplement read() and write() if you want to control how items are represented in their serialized form.
Reimplement operator<() if you want to control the semantics of item comparison. operator<() determines the sorted order when sorting items with sortChildren() or with QStandardItemModel::sort().
See Also▲
Member Type Documentation▲
enum QStandardItem::ItemType▲
This enum describes the types that are used to describe standard items.
Constant |
Value |
Description |
---|---|---|
QStandardItem::Type |
0 |
The default type for standard items. |
QStandardItem::UserType |
1000 |
The minimum value for custom types. Values below UserType are reserved by Qt. |
You can define new user types in QStandardItem subclasses to ensure that custom items are treated specially; for example, when items are sorted.
See Also▲
See also type()
Member Function Documentation▲
QStandardItem::QStandardItem()▲
Constructs an item.
[explicit] QStandardItem::QStandardItem(const QString &text)▲
Constructs an item with the given text.
QStandardItem::QStandardItem(const QIcon &icon, const QString &text)▲
Constructs an item with the given icon and text.
[explicit] QStandardItem::QStandardItem(int rows, int columns = 1)▲
Constructs an item with rows rows and columns columns of child items.
[protected] QStandardItem::QStandardItem(const QStandardItem &other)▲
Constructs a copy of other. Note that model() is not copied.
This function is useful when reimplementing clone().
[virtual] QStandardItem::~QStandardItem()▲
Destructs the item. This causes the item's children to be destructed as well.
QString QStandardItem::accessibleDescription() const▲
Returns the item's accessible description.
The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).
See Also▲
See also setAccessibleDescription(), accessibleText()
QString QStandardItem::accessibleText() const▲
Returns the item's accessible text.
The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).
See Also▲
See also setAccessibleText(), accessibleDescription()
void QStandardItem::appendColumn(const QList<QStandardItem *> &items)▲
Appends a column containing items. If necessary, the row count is increased to the size of items.
See Also▲
See also insertColumn()
void QStandardItem::appendRow(const QList<QStandardItem *> &items)▲
Appends a row containing items. If necessary, the column count is increased to the size of items.
See Also▲
See also insertRow()
void QStandardItem::appendRow(QStandardItem *item)▲
This is an overloaded function.
Appends a row containing item.
When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.
void QStandardItem::appendRows(const QList<QStandardItem *> &items)▲
QBrush QStandardItem::background() const▲
Returns the brush used to render the item's background.
See Also▲
See also foreground(), setBackground()
Qt::CheckState QStandardItem::checkState() const▲
QStandardItem *QStandardItem::child(int row, int column = 0) const▲
Returns the child item at (row, column) if one has been set; otherwise returns nullptr.
See Also▲
[since 5.12] void QStandardItem::clearData()▲
Removes all the data from all roles previously set.
This function was introduced in Qt 5.12.
See Also▲
[virtual] QStandardItem *QStandardItem::clone() const▲
Returns a copy of this item. The item's children are not copied.
When subclassing QStandardItem, you can reimplement this function to provide QStandardItemModel with a factory that it can use to create new items on demand.
See Also▲
See also QStandardItemModel::setItemPrototype(), operator=()
int QStandardItem::column() const▲
Returns the column where the item is located in its parent's child table, or -1 if the item has no parent.
See Also▲
int QStandardItem::columnCount() const▲
Returns the number of child item columns that the item has.
See Also▲
See also setColumnCount(), rowCount()
[virtual] QVariant QStandardItem::data(int role = Qt::UserRole + 1) const▲
Returns the item's data for the given role, or an invalid QVariant if there is no data for the role.
The default implementation treats Qt::EditRole and Qt::DisplayRole as referring to the same data.
See Also▲
See also setData()
[protected] void QStandardItem::emitDataChanged()▲
Causes the model associated with this item to emit a dataChanged() signal for this item.
You normally only need to call this function if you have subclassed QStandardItem and reimplemented data() and/or setData().
See Also▲
See also setData()
Qt::ItemFlags QStandardItem::flags() const▲
Returns the item flags for the item.
The item flags determine how the user can interact with the item.
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.
See Also▲
See also setFlags()
QFont QStandardItem::font() const▲
QBrush QStandardItem::foreground() const▲
Returns the brush used to render the item's foreground (e.g. text).
See Also▲
See also setForeground(), background()
bool QStandardItem::hasChildren() const▲
Returns true if this item has any children; otherwise returns false.
See Also▲
See also rowCount(), columnCount(), child()
QIcon QStandardItem::icon() const▲
QModelIndex QStandardItem::index() const▲
Returns the QModelIndex associated with this item.
When you need to invoke item functionality in a QModelIndex-based API (e.g. QAbstractItemView), you can call this function to obtain an index that corresponds to the item's location in the model.
If the item is not associated with a model, an invalid QModelIndex is returned.
See Also▲
See also model(), QStandardItemModel::itemFromIndex()
void QStandardItem::insertColumn(int column, const QList<QStandardItem *> &items)▲
Inserts a column at column containing items. If necessary, the row count is increased to the size of items.
See Also▲
See also insertColumns(), insertRow()
void QStandardItem::insertColumns(int column, int count)▲
Inserts count columns of child items at column column.
See Also▲
See also insertColumn(), insertRows()
void QStandardItem::insertRow(int row, const QList<QStandardItem *> &items)▲
Inserts a row at row containing items. If necessary, the column count is increased to the size of items.
See Also▲
See also insertRows(), insertColumn()
void QStandardItem::insertRow(int row, QStandardItem *item)▲
This is an overloaded function.
Inserts a row at row containing item.
When building a list or a tree that has only one column, this function provides a convenient way to insert a single new item.
void QStandardItem::insertRows(int row, const QList<QStandardItem *> &items)▲
Inserts items at row. The column count won't be changed.
See Also▲
See also insertRow(), insertColumn()
void QStandardItem::insertRows(int row, int count)▲
[since 5.6] bool QStandardItem::isAutoTristate() const▲
Returns whether the item is tristate and is controlled by QTreeWidget.
The default value is false.
This function was introduced in Qt 5.6.
See Also▲
See also setAutoTristate(), isCheckable(), checkState()
bool QStandardItem::isCheckable() const▲
Returns whether the item is user-checkable.
The default value is false.
See Also▲
See also setCheckable(), checkState(), isUserTristate(), isAutoTristate()
bool QStandardItem::isDragEnabled() const▲
Returns whether the item is drag enabled. An item that is drag enabled can be dragged by the user.
The default value is true.
Note that item dragging must be enabled in the view for dragging to work; see QAbstractItemView::dragEnabled.
See Also▲
See also setDragEnabled(), isDropEnabled(), flags()
bool QStandardItem::isDropEnabled() const▲
Returns whether the item is drop enabled. When an item is drop enabled, it can be used as a drop target.
The default value is true.
See Also▲
See also setDropEnabled(), isDragEnabled(), flags()
bool QStandardItem::isEditable() const▲
Returns whether the item can be edited by the user.
When an item is editable (and enabled), the user can edit the item by invoking one of the view's edit triggers; see QAbstractItemView::editTriggers.
The default value is true.
See Also▲
See also setEditable(), flags()
bool QStandardItem::isEnabled() const▲
Returns whether the item is enabled.
When an item is enabled, the user can interact with it. The possible types of interaction are specified by the other item flags, such as isEditable() and isSelectable().
The default value is true.
See Also▲
See also setEnabled(), flags()
bool QStandardItem::isSelectable() const▲
Returns whether the item is selectable by the user.
The default value is true.
See Also▲
See also setSelectable(), flags()
[since 5.6] bool QStandardItem::isUserTristate() const▲
Returns whether the item is tristate; that is, if it's checkable with three separate states and the user can cycle through all three states.
The default value is false.
This function was introduced in Qt 5.6.
See Also▲
See also setUserTristate(), isCheckable(), checkState()
QStandardItemModel *QStandardItem::model() const▲
Returns the QStandardItemModel that this item belongs to.
If the item is not a child of another item that belongs to the model, this function returns nullptr.
See Also▲
See also index()
[virtual, since 6.0] void QStandardItem::multiData(QModelRoleDataSpan roleDataSpan) const▲
Fills the roleDataSpan span with the data from this item.
The default implementation simply calls data() for each role in the span.
This function was introduced in Qt 6.0.
See Also▲
See also data()
QStandardItem *QStandardItem::parent() const▲
Returns the item's parent item, or nullptr if the item has no parent.
For toplevel items parent() returns nullptr. To receive toplevel item's parent use QStandardItemModel::invisibleRootItem() instead.
See Also▲
See also child(), QStandardItemModel::invisibleRootItem()
[virtual] void QStandardItem::read(QDataStream &in)▲
Reads the item from stream in. Only the data and flags of the item are read, not the child items.
See Also▲
See also write()
void QStandardItem::removeColumn(int column)▲
Removes the given column. The items that were in the column are deleted.
See Also▲
See also takeColumn(), removeColumns(), removeRow()
void QStandardItem::removeColumns(int column, int count)▲
Removes count columns at column column. The items that were in those columns are deleted.
See Also▲
See also removeColumn(), removeRows()
void QStandardItem::removeRow(int row)▲
Removes the given row. The items that were in the row are deleted.
See Also▲
See also takeRow(), removeRows(), removeColumn()
void QStandardItem::removeRows(int row, int count)▲
Removes count rows at row row. The items that were in those rows are deleted.
See Also▲
See also removeRow(), removeColumn()
int QStandardItem::row() const▲
Returns the row where the item is located in its parent's child table, or -1 if the item has no parent.
See Also▲
int QStandardItem::rowCount() const▲
Returns the number of child item rows that the item has.
See Also▲
See also setRowCount(), columnCount()
void QStandardItem::setAccessibleDescription(const QString &accessibleDescription)▲
Sets the item's accessible description to the string specified by accessibleDescription.
The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).
See Also▲
See also accessibleDescription(), setAccessibleText()
void QStandardItem::setAccessibleText(const QString &accessibleText)▲
Sets the item's accessible text to the string specified by accessibleText.
The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).
See Also▲
See also accessibleText(), setAccessibleDescription()
[since 5.6] void QStandardItem::setAutoTristate(bool tristate)▲
Determines that the item is tristate and controlled by QTreeWidget if tristate is true. This enables automatic management of the state of parent items in QTreeWidget (checked if all children are checked, unchecked if all children are unchecked, or partially checked if only some children are checked).
This function was introduced in Qt 5.6.
See Also▲
See also isAutoTristate(), setCheckable(), setCheckState()
void QStandardItem::setBackground(const QBrush &brush)▲
Sets the item's background brush to the specified brush.
See Also▲
See also background(), setForeground()
void QStandardItem::setCheckState(Qt::CheckState state)▲
void QStandardItem::setCheckable(bool checkable)▲
Sets whether the item is user-checkable. If checkable is true, the item can be checked by the user; otherwise, the user cannot check the item.
The item delegate will render a checkable item with a check box next to the item's text.
See Also▲
See also isCheckable(), setCheckState(), setUserTristate(), setAutoTristate()
void QStandardItem::setChild(int row, int column, QStandardItem *item)▲
Sets the child item at (row, column) to item. This item (the parent item) takes ownership of item. If necessary, the row count and column count are increased to fit the item.
Passing nullptr as item removes the item.
See Also▲
See also child()
void QStandardItem::setChild(int row, QStandardItem *item)▲
This is an overloaded function.
Sets the child at row to item.
void QStandardItem::setColumnCount(int columns)▲
Sets the number of child item columns to columns. If this is less than columnCount(), the data in the unwanted columns is discarded.
See Also▲
See also columnCount(), setRowCount()
[virtual] void QStandardItem::setData(const QVariant &value, int role = Qt::UserRole + 1)▲
Sets the item's data for the given role to the specified value.
If you subclass QStandardItem and reimplement this function, your reimplementation should call emitDataChanged() if you do not call the base implementation of setData(). This will ensure that e.g. views using the model are notified of the changes.
The default implementation treats Qt::EditRole and Qt::DisplayRole as referring to the same data.
See Also▲
See also Qt::ItemDataRole, data(), setFlags()
void QStandardItem::setDragEnabled(bool dragEnabled)▲
Sets whether the item is drag enabled. If dragEnabled is true, the item can be dragged by the user; otherwise, the user cannot drag the item.
Note that you also need to ensure that item dragging is enabled in the view; see QAbstractItemView::dragEnabled.
See Also▲
See also isDragEnabled(), setDropEnabled(), setFlags()
void QStandardItem::setDropEnabled(bool dropEnabled)▲
Sets whether the item is drop enabled. If dropEnabled is true, the item can be used as a drop target; otherwise, it cannot.
Note that you also need to ensure that drops are enabled in the view; see QWidget::acceptDrops(); and that the model supports the desired drop actions; see QAbstractItemModel::supportedDropActions().
See Also▲
See also isDropEnabled(), setDragEnabled(), setFlags()
void QStandardItem::setEditable(bool editable)▲
Sets whether the item is editable. If editable is true, the item can be edited by the user; otherwise, the user cannot edit the item.
How the user can edit items in a view is determined by the view's edit triggers; see QAbstractItemView::editTriggers.
See Also▲
See also isEditable(), setFlags()
void QStandardItem::setEnabled(bool enabled)▲
Sets whether the item is enabled. If enabled is true, the item is enabled, meaning that the user can interact with the item; if enabled is false, the user cannot interact with the item.
This flag takes precedence over the other item flags; e.g. if an item is not enabled, it cannot be selected by the user, even if the Qt::ItemIsSelectable flag has been set.
See Also▲
See also isEnabled(), Qt::ItemIsEnabled, setFlags()
void QStandardItem::setFlags(Qt::ItemFlags flags)▲
Sets the item flags for the item to flags.
The item flags determine how the user can interact with the item. This is often used to disable an item.
See Also▲
void QStandardItem::setFont(const QFont &font)▲
Sets the font used to display the item's text to the given font.
See Also▲
See also font(), setText(), setForeground()
void QStandardItem::setForeground(const QBrush &brush)▲
Sets the brush used to display the item's foreground (e.g. text) to the given brush.
See Also▲
See also foreground(), setBackground(), setFont()
void QStandardItem::setIcon(const QIcon &icon)▲
void QStandardItem::setRowCount(int rows)▲
Sets the number of child item rows to rows. If this is less than rowCount(), the data in the unwanted rows is discarded.
See Also▲
See also rowCount(), setColumnCount()
void QStandardItem::setSelectable(bool selectable)▲
Sets whether the item is selectable. If selectable is true, the item can be selected by the user; otherwise, the user cannot select the item.
You can control the selection behavior and mode by manipulating their view properties; see QAbstractItemView::selectionMode and QAbstractItemView::selectionBehavior.
See Also▲
See also isSelectable(), setFlags()
void QStandardItem::setSizeHint(const QSize &size)▲
Sets the size hint for the item to be size. If no size hint is set, the item delegate will compute the size hint based on the item data.
See Also▲
See also sizeHint()
void QStandardItem::setStatusTip(const QString &statusTip)▲
Sets the item's status tip to the string specified by statusTip.
See Also▲
See also statusTip(), setToolTip(), setWhatsThis()
void QStandardItem::setText(const QString &text)▲
void QStandardItem::setTextAlignment(Qt::Alignment alignment)▲
Sets the text alignment for the item's text to the alignment specified.
See Also▲
See also textAlignment()
void QStandardItem::setToolTip(const QString &toolTip)▲
Sets the item's tooltip to the string specified by toolTip.
See Also▲
See also toolTip(), setStatusTip(), setWhatsThis()
[since 5.6] void QStandardItem::setUserTristate(bool tristate)▲
Sets whether the item is tristate and controlled by the user. If tristate is true, the user can cycle through three separate states; otherwise, the item is checkable with two states. (Note that this also requires that the item is checkable; see isCheckable().)
This function was introduced in Qt 5.6.
See Also▲
See also isUserTristate(), setCheckable(), setCheckState()
void QStandardItem::setWhatsThis(const QString &whatsThis)▲
Sets the item's "What's This?" help to the string specified by whatsThis.
See Also▲
See also whatsThis(), setStatusTip(), setToolTip()
QSize QStandardItem::sizeHint() const▲
Returns the size hint set for the item, or an invalid QSize if no size hint has been set.
If no size hint has been set, the item delegate will compute the size hint based on the item data.
See Also▲
See also setSizeHint()
void QStandardItem::sortChildren(int column, Qt::SortOrder order = Qt::AscendingOrder)▲
Sorts the children of the item using the given order, by the values in the given column.
This function is recursive, therefore it sorts the children of the item, its grandchildren, etc.
See Also▲
See also operator<()
QString QStandardItem::statusTip() const▲
QStandardItem *QStandardItem::takeChild(int row, int column = 0)▲
Removes the child item at (row, column) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns nullptr.
Note that this function, unlike takeRow() and takeColumn(), does not affect the dimensions of the child table.
See Also▲
See also child(), takeRow(), takeColumn()
QList<QStandardItem *> QStandardItem::takeColumn(int column)▲
Removes column without deleting the column items, and returns a list of pointers to the removed items. For items in the column that have not been set, the corresponding pointers in the list will be nullptr.
See Also▲
See also removeColumn(), insertColumn(), takeRow()
QList<QStandardItem *> QStandardItem::takeRow(int row)▲
Removes row without deleting the row items, and returns a list of pointers to the removed items. For items in the row that have not been set, the corresponding pointers in the list will be nullptr.
See Also▲
See also removeRow(), insertRow(), takeColumn()
QString QStandardItem::text() const▲
Returns the item's text. This is the text that's presented to the user in a view.
See Also▲
See also setText()
Qt::Alignment QStandardItem::textAlignment() const▲
QString QStandardItem::toolTip() const▲
[virtual] int QStandardItem::type() const▲
Returns the type of this item. The type is used to distinguish custom items from the base class. When subclassing QStandardItem, you should reimplement this function and return a new value greater than or equal to UserType.
See Also▲
See also QStandardItem::Type
QString QStandardItem::whatsThis() const▲
[virtual] void QStandardItem::write(QDataStream &out) const▲
Writes the item to stream out. Only the data and flags of the item are written, not the child items.
See Also▲
See also read()
[virtual] bool QStandardItem::operator<(const QStandardItem &other) const▲
Returns true if this item is less than other; otherwise returns false.
The default implementation uses the data for the item's sort role (see QStandardItemModel::sortRole) to perform the comparison if the item belongs to a model; otherwise, the data for the item's Qt::DisplayRole (text()) is used to perform the comparison.
sortChildren() and QStandardItemModel::sort() use this function when sorting items. If you want custom sorting, you can subclass QStandardItem and reimplement this function.
[protected] QStandardItem &QStandardItem::operator=(const QStandardItem &other)▲
Related Non-Members▲
QDataStream &operator<<(QDataStream &out, const QStandardItem &item)▲
Writes the QStandardItem item to stream out.
This operator uses QStandardItem::write().
See Also▲
See also Serializing Qt Data Types
QDataStream &operator>>(QDataStream &in, QStandardItem &item)▲
Reads a QStandardItem from stream in into item.
This operator uses QStandardItem::read().
See Also▲
See also Serializing Qt Data Types