QModelRoleData Class

The QModelRoleData class holds a role and the data associated to that role. More...

Header: #include <QModelRoleData>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: Qt 6.0

Public Functions

QModelRoleData(int role)
void clearData()
QVariant &data()
const QVariant &data() const
int role() const
void setData(T &&value)

Detailed Description

QModelRoleData objects store an item role (which is a value from the Qt::ItemDataRole enumeration, or an arbitrary integer for a custom role) as well as the data associated with that role.

A QModelRoleData object is typically created by views or delegates, setting which role they want to fetch the data for. The object is then passed to models (see QAbstractItemModel::multiData()), which populate the data corresponding to the role stored. Finally, the view visualizes the data retrieved from the model.

See also Model/View Programming and QModelRoleDataSpan.

Member Function Documentation

QModelRoleData::QModelRoleData(int role)

Constructs a QModelRoleData object for the given role.

See also Qt::ItemDataRole.

void QModelRoleData::clearData()

Clears the data held by this object. Note that the role is unchanged; only the data is cleared.

See also data().

QVariant &QModelRoleData::data()

Returns the data held by this object as a modifiable reference.

See also setData().

const QVariant &QModelRoleData::data() const

Returns the data held by this object.

See also setData().

int QModelRoleData::role() const

Returns the role held by this object.

See also Qt::ItemDataRole.

template <typename T> void QModelRoleData::setData(T &&value)

Sets the data held by this object to value. value must be of a datatype which can be stored in a QVariant.

See also data(), clearData(), and Q_DECLARE_METATYPE.

© 2022 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 the GNU 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.