Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQmlDelegateChooser Class Reference

#include <qqmldelegatecomponent_p.h>

+ Inheritance diagram for QQmlDelegateChooser:
+ Collaboration diagram for QQmlDelegateChooser:

Signals

void roleChanged ()
 
- Signals inherited from QQmlAbstractDelegateComponent
void delegateChanged ()
 
- Signals inherited from QQmlComponent
void statusChanged (QQmlComponent::Status)
 Emitted whenever the component's status changes.
 
void progressChanged (qreal)
 Emitted whenever the component's loading progress changes.
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

QString role () const final
 
void setRole (const QString &role)
 Allows a view to use different delegates for different types of items in the model.
 
virtual QQmlListProperty< QQmlDelegateChoicechoices ()
 
QQmlComponentdelegate (QQmlAdaptorModel *adaptorModel, int row, int column=-1) const override
 
- Public Member Functions inherited from QQmlAbstractDelegateComponent
 QQmlAbstractDelegateComponent (QObject *parent=nullptr)
 
 ~QQmlAbstractDelegateComponent () override
 
- Public Member Functions inherited from QQmlComponent
 QQmlComponent (QObject *parent=nullptr)
 
 QQmlComponent (QQmlEngine *, QObject *parent=nullptr)
 Create a QQmlComponent with no data and give it the specified engine and parent.
 
 QQmlComponent (QQmlEngine *, const QString &fileName, QObject *parent=nullptr)
 Create a QQmlComponent from the given fileName and give it the specified parent and engine.
 
 QQmlComponent (QQmlEngine *, const QString &fileName, CompilationMode mode, QObject *parent=nullptr)
 Create a QQmlComponent from the given fileName and give it the specified parent and engine.
 
 QQmlComponent (QQmlEngine *, const QUrl &url, QObject *parent=nullptr)
 Create a QQmlComponent from the given url and give it the specified parent and engine.
 
 QQmlComponent (QQmlEngine *, const QUrl &url, CompilationMode mode, QObject *parent=nullptr)
 Create a QQmlComponent from the given url and give it the specified parent and engine.
 
 QQmlComponent (QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, QObject *parent=nullptr)
 Create a QQmlComponent from the given uri and typeName and give it the specified parent and engine.
 
 QQmlComponent (QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, CompilationMode mode, QObject *parent=nullptr)
 Create a QQmlComponent from the given uri and typeName and give it the specified parent and engine.
 
 ~QQmlComponent () override
 Destruct the QQmlComponent.
 
Status status () const
 
bool isNull () const
 Returns true if status() == QQmlComponent::Null.
 
bool isReady () const
 Returns true if status() == QQmlComponent::Ready.
 
bool isError () const
 Returns true if status() == QQmlComponent::Error.
 
bool isLoading () const
 Returns true if status() == QQmlComponent::Loading.
 
bool isBound () const
 Returns true if the component was created in a QML files that specifies {pragma ComponentBehavior: Bound}, otherwise returns false.
 
QList< QQmlErrorerrors () const
 Returns the list of errors that occurred during the last compile or create operation.
 
Q_INVOKABLE QString errorString () const
 \qmlmethod string Component::errorString()
 
qreal progress () const
 
QUrl url () const
 
virtual QObjectcreate (QQmlContext *context=nullptr)
 Create an object instance from this component, within the specified context.
 
QObjectcreateWithInitialProperties (const QVariantMap &initialProperties, QQmlContext *context=nullptr)
 Create an object instance of this component, within the specified context, and initialize its top-level properties with initialProperties.
 
void setInitialProperties (QObject *component, const QVariantMap &properties)
 Set top-level properties of the component.
 
virtual QObjectbeginCreate (QQmlContext *)
 Create an object instance from this component, within the specified context.
 
virtual void completeCreate ()
 This method provides advanced control over component instance creation.
 
void create (QQmlIncubator &, QQmlContext *context=nullptr, QQmlContext *forContext=nullptr)
 Create an object instance from this component using the provided incubator.
 
QQmlContextcreationContext () const
 Returns the QQmlContext the component was created in.
 
QQmlEngineengine () const
 Returns the QQmlEngine of this component.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Static Public Member Functions

static void choices_append (QQmlListProperty< QQmlDelegateChoice > *, QQmlDelegateChoice *)
 
static qsizetype choices_count (QQmlListProperty< QQmlDelegateChoice > *)
 
static QQmlDelegateChoicechoices_at (QQmlListProperty< QQmlDelegateChoice > *, qsizetype)
 
static void choices_clear (QQmlListProperty< QQmlDelegateChoice > *)
 
static void choices_replace (QQmlListProperty< QQmlDelegateChoice > *, qsizetype, QQmlDelegateChoice *)
 
static void choices_removeLast (QQmlListProperty< QQmlDelegateChoice > *)
 
- Static Public Member Functions inherited from QQmlComponent
static QQmlComponentAttachedqmlAttachedProperties (QObject *)
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 

Properties

QString role
 
QQmlListProperty< QQmlDelegateChoicechoices
 \qmlproperty list<DelegateChoice> Qt.labs.qmlmodels::DelegateChooser::choices \qmldefault
 
- Properties inherited from QQmlComponent
qreal progress
 \qmlproperty real Component::progress The progress of loading the component, from 0.0 (nothing loaded) to 1.0 (finished).
 
Status status
 \qmlproperty enumeration Component::status
 
QUrl url
 \qmlproperty url Component::url The component URL.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Public Types inherited from QQmlComponent
enum  CompilationMode { PreferSynchronous , Asynchronous }
 Specifies whether the QQmlComponent should load the component immediately, or asynchonously. More...
 
enum  Status { Null , Ready , Loading , Error }
 \qmltype Component \instantiates QQmlComponent\inqmlmodule QtQml More...
 
- Public Slots inherited from QQmlComponent
void loadUrl (const QUrl &url)
 Load the QQmlComponent from the provided url.
 
void loadUrl (const QUrl &url, CompilationMode mode)
 Load the QQmlComponent from the provided url.
 
void loadFromModule (QAnyStringView uri, QAnyStringView typeName, QQmlComponent::CompilationMode mode=PreferSynchronous)
 Load the QQmlComponent for typeName in the module uri.
 
void setData (const QByteArray &, const QUrl &baseUrl)
 Sets the QQmlComponent to use the given QML data.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Protected Member Functions inherited from QQmlAbstractDelegateComponent
QVariant value (QQmlAdaptorModel *adaptorModel, int row, int column, const QString &role) const
 
- Protected Member Functions inherited from QQmlComponent
 QQmlComponent (QQmlComponentPrivate &dd, QObject *parent)
 
Q_INVOKABLE QObjectcreateObject (QObject *parent=nullptr, const QVariantMap &properties={})
 
Q_INVOKABLE void incubateObject (QQmlV4FunctionPtr)
 \qmlmethod object Component::incubateObject(QtObject parent, object properties, enumeration mode)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 70 of file qqmldelegatecomponent_p.h.

Member Function Documentation

◆ choices()

virtual QQmlListProperty< QQmlDelegateChoice > QQmlDelegateChooser::choices ( )
virtual

◆ choices_append()

void QQmlDelegateChooser::choices_append ( QQmlListProperty< QQmlDelegateChoice > * prop,
QQmlDelegateChoice * choice )
static

Definition at line 235 of file qqmldelegatecomponent.cpp.

References QList< T >::append(), QQmlDelegateChoice::changed(), QObject::connect(), QQmlAbstractDelegateComponent::delegateChanged(), and emit.

+ Here is the call graph for this function:

◆ choices_at()

QQmlDelegateChoice * QQmlDelegateChooser::choices_at ( QQmlListProperty< QQmlDelegateChoice > * prop,
qsizetype index )
static

Definition at line 249 of file qqmldelegatecomponent.cpp.

References QList< T >::at().

+ Here is the call graph for this function:

◆ choices_clear()

void QQmlDelegateChooser::choices_clear ( QQmlListProperty< QQmlDelegateChoice > * prop)
static

Definition at line 255 of file qqmldelegatecomponent.cpp.

References QQmlDelegateChoice::changed(), QList< T >::clear(), QQmlAbstractDelegateComponent::delegateChanged(), disconnect(), and emit.

+ Here is the call graph for this function:

◆ choices_count()

qsizetype QQmlDelegateChooser::choices_count ( QQmlListProperty< QQmlDelegateChoice > * prop)
static

Definition at line 243 of file qqmldelegatecomponent.cpp.

References QList< T >::size().

+ Here is the call graph for this function:

◆ choices_removeLast()

void QQmlDelegateChooser::choices_removeLast ( QQmlListProperty< QQmlDelegateChoice > * prop)
static

Definition at line 276 of file qqmldelegatecomponent.cpp.

References QQmlDelegateChoice::changed(), QQmlAbstractDelegateComponent::delegateChanged(), disconnect(), and emit.

+ Here is the call graph for this function:

◆ choices_replace()

void QQmlDelegateChooser::choices_replace ( QQmlListProperty< QQmlDelegateChoice > * prop,
qsizetype index,
QQmlDelegateChoice * choice )
static

Definition at line 264 of file qqmldelegatecomponent.cpp.

References QQmlDelegateChoice::changed(), QObject::connect(), QQmlAbstractDelegateComponent::delegateChanged(), disconnect(), and emit.

+ Here is the call graph for this function:

◆ delegate()

QQmlComponent * QQmlDelegateChooser::delegate ( QQmlAdaptorModel * adaptorModel,
int row,
int column = -1 ) const
overridevirtual

Implements QQmlAbstractDelegateComponent.

Definition at line 284 of file qqmldelegatecomponent.cpp.

References QList< T >::at(), QQmlDelegateChoice::delegate, i, QString::isNull(), property, QStringLiteral, QList< T >::size(), and QString::toUtf8().

+ Here is the call graph for this function:

◆ role()

QString QQmlDelegateChooser::role ( ) const
inlinefinalvirtual

Implements QQmlAbstractDelegateComponent.

Definition at line 80 of file qqmldelegatecomponent_p.h.

◆ roleChanged

void QQmlDelegateChooser::roleChanged ( )
signal

Referenced by setRole().

+ Here is the caller graph for this function:

◆ setRole()

void QQmlDelegateChooser::setRole ( const QString & role)

Allows a view to use different delegates for different types of items in the model.

\qmltype DelegateChooser

! \instantiates QQmlDelegateChooser \inqmlmodule Qt.labs.qmlmodels

The DelegateChooser is a special \l Component type intended for those scenarios where a Component is required by a view and used as a delegate. DelegateChooser encapsulates a set of \l {DelegateChoice}s. These choices are used to determine the delegate that will be instantiated for each item in the model. The selection of the choice is performed based on the value that a model item has for \l role, and also based on index.

DelegateChooser is commonly used when a view needs to display a set of delegates that are significantly different from each other. For example, a typical phone settings view might include toggle switches, sliders, radio buttons, and other visualizations based on the type of each setting. In this case, DelegateChooser could provide an easy way to associate a different type of delegate with each setting:

\qml import QtQuick import QtQuick.Controls import Qt.labs.qmlmodels

ListView { width: 200; height: 400

ListModel { id: listModel ListElement { type: "info"; ... } ListElement { type: "switch"; ... } ListElement { type: "swipe"; ... } ListElement { type: "switch"; ... } }

DelegateChooser { id: chooser role: "type" DelegateChoice { roleValue: "info"; ItemDelegate { ... } } DelegateChoice { roleValue: "switch"; SwitchDelegate { ... } } DelegateChoice { roleValue: "swipe"; SwipeDelegate { ... } } }

model: listModel delegate: chooser } \endqml

Note
This type is intended to transparently work only with TableView and any DelegateModel-based view. Views (including user-defined views) that aren't internally based on a DelegateModel need to explicitly support this type of component to make it function as described.
See also
DelegateChoice

\qmlproperty string Qt.labs.qmlmodels::DelegateChooser::role This property holds the role or the property name used to determine the delegate for a given model item.

Note
For \l{QAbstractItemModel} based models, including \l{ListModel}, the DelegateChooser will reevaluate the choice when the model signals that the role has changed. For any other type of model, this choice will only be done once when the item for a given model index is created.
See also
DelegateChoice

Definition at line 202 of file qqmldelegatecomponent.cpp.

References emit, role, and roleChanged().

+ Here is the call graph for this function:

Property Documentation

◆ choices

QQmlListProperty< QQmlDelegateChoice > QQmlDelegateChooser::choices
read

\qmlproperty list<DelegateChoice> Qt.labs.qmlmodels::DelegateChooser::choices \qmldefault

The list of DelegateChoices for the chooser.

The list is treated as an ordered list, where the first DelegateChoice to match will be used be a view.

It should not generally be necessary to refer to the choices property, as it is the default property for DelegateChooser and thus all child items are automatically assigned to this property.

Definition at line 74 of file qqmldelegatecomponent_p.h.

◆ role

QString QQmlDelegateChooser::role
readwrite

Definition at line 73 of file qqmldelegatecomponent_p.h.

Referenced by setRole().


The documentation for this class was generated from the following files: