QQmlListReference Class
La clase QQmlListReference permite manipular las propiedades de QQmlListProperty. Más...
| Cabecera: | #include <QQmlListReference> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml)target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
Funciones públicas
| QQmlListReference() | |
(since 6.1) | QQmlListReference(const QVariant &variant) |
| QQmlListReference(QObject *object, const char *property) | |
| bool | append(QObject *object) const |
| QObject * | at(qsizetype index) const |
| bool | canAppend() const |
| bool | canAt() const |
| bool | canClear() const |
| bool | canCount() const |
| bool | canRemoveLast() const |
| bool | canReplace() const |
| bool | clear() const |
| qsizetype | count() const |
| bool | isManipulable() const |
| bool | isReadable() const |
| bool | isValid() const |
| const QMetaObject * | listElementType() const |
| QObject * | object() const |
| bool | removeLast() const |
| bool | replace(qsizetype index, QObject *object) const |
(since 6.2) qsizetype | size() const |
| bool | operator==(const QQmlListReference &other) const |
Descripción detallada
QQmlListReference permite a los programas C++ leer y asignar valores a una propiedad de lista QML de una forma sencilla y segura. La principal ventaja sobre el uso de QQmlListProperty es su eliminación de tipos: QQmlListReference no es una plantilla, sino que puede utilizarse para QQmlListProperties de cualquier tipo. Además vigila que el objeto propietario no sea borrado y no permite que se vuelva a acceder a QQmlListProperty si su propietario ha sido borrado.
Puedes crear una QQmlListReference a partir de un objeto y un nombre de propiedad o a partir de QVariant. Ambos son equivalentes:
QQmlListReference ref1(object, "children"); const QVariant var = object->property("children"); QQmlListReference ref2(var);
No todas las QQmlListReferences soportan todas las operaciones. Métodos como canAppend(), canAt(), canClear() y canCount() permiten a los programas consultar si una operación es compatible con una propiedad determinada. La disponibilidad de los métodos depende de los métodos implementados por el QQmlListProperty subyacente. Cuando se construye un QQmlListProperty pasando manualmente las funciones de acceso, se puede restringir el acceso a la lista pasando nullptr a algunas de ellas. QQmlListReference los reconocerá e informará de que no están disponibles.
QQmlListReferences son de tipo seguro. Sólo QObjects que derivan de la clase base correcta pueden ser añadidos a la lista. El método listElementType() puede utilizarse para consultar los QMetaObject del tipo QObject que pueden añadirse. El intento de añadir objetos de un tipo incorrecto a una propiedad de la lista fallará.
Al igual que con otras listas, cuando se accede a un elemento de lista por índice, es responsabilidad de quien llama asegurarse de que no solicita un elemento fuera de rango. Para ello, utilice el método count() antes de llamar a at().
Documentación de las funciones miembro
QQmlListReference::QQmlListReference()
Construye una instancia inválida.
[explicit, since 6.1] QQmlListReference::QQmlListReference(const QVariant &variant)
Construye una QQmlListReference a partir de un QVariant variant que contiene un QQmlListProperty. Si variant no contiene una propiedad de lista, se crea una QQmlListReference inválida. Si el objeto que posee la propiedad de lista se destruye después de construir la referencia, ésta dejará de ser válida automáticamente. Es decir, es seguro mantener instancias QQmlListReference incluso después de que el objeto sea eliminado.
Esta función se introdujo en Qt 6.1.
QQmlListReference::QQmlListReference(QObject *object, const char *property)
Construye una QQmlListReference para object's property. Si property no es una propiedad de lista, se crea una QQmlListReference inválida. Si object se destruye después de construir la referencia, ésta dejará de ser válida automáticamente. Es decir, es seguro mantener instancias QQmlListReference incluso después de que object sea eliminado.
bool QQmlListReference::append(QObject *object) const
Añade object a la lista. Devuelve true si la operación se ha realizado correctamente, en caso contrario false.
Véase también canAppend().
QObject *QQmlListReference::at(qsizetype index) const
Devuelve el elemento de la lista en index, o nullptr si la operación falló.
Véase también canAt().
bool QQmlListReference::canAppend() const
Devuelve true si se puede anexar a la propiedad de la lista, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también append().
bool QQmlListReference::canAt() const
Devuelve true si la propiedad de la lista se puede consultar por índice, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también at().
bool QQmlListReference::canClear() const
Devuelve true si se puede borrar la propiedad de la lista, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también clear().
bool QQmlListReference::canCount() const
Devuelve true si la propiedad list puede ser consultada por su número de elementos, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también count().
bool QQmlListReference::canRemoveLast() const
Devuelve true si el último elemento se puede eliminar de la propiedad list, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también removeLast().
bool QQmlListReference::canReplace() const
Devuelve true si los elementos de la propiedad list pueden ser reemplazados, en caso contrario false. Devuelve false si la referencia no es válida.
Véase también replace().
bool QQmlListReference::clear() const
Borra la lista. Devuelve true si la operación ha tenido éxito, en caso contrario false.
Véase también canClear().
qsizetype QQmlListReference::count() const
Devuelve el número de elementos de la lista, o 0 si la operación ha fallado.
bool QQmlListReference::isManipulable() const
Devuelve true si at(), count(), append(), y clear() o removeLast() están implementados, para que puedas manipular la lista.
Tenga en cuenta que replace() y removeLast() pueden emularse almacenando todos los elementos y reconstruyendo la lista con clear() y append(). Por lo tanto, no son necesarios para que la lista sea manipulable. Además, clear() puede emularse utilizando removeLast().
Véase también isReadable(), at(), count(), append(), clear(), replace() y removeLast().
bool QQmlListReference::isReadable() const
Devuelve true si at() y count() están implementados, por lo que se puede acceder a los elementos.
Véase también isManipulable(), at(), y count().
bool QQmlListReference::isValid() const
Devuelve true si la instancia se refiere a una propiedad de lista válida, en caso contrario false.
const QMetaObject *QQmlListReference::listElementType() const
Devuelve el QMetaObject para los elementos almacenados en la propiedad de la lista, o nullptr si la referencia no es válida.
El QMetaObject se puede utilizar por adelantado para determinar si una instancia dada se puede añadir a una lista. Si no pasaste un motor en la construcción esto puede devolver nullptr.
QObject *QQmlListReference::object() const
Devuelve el objeto de la propiedad list. Devuelve nullptr si la referencia no es válida.
bool QQmlListReference::removeLast() const
Elimina el último elemento de la lista. Devuelve true si la operación se ha realizado correctamente, false en caso contrario.
Véase también canRemoveLast().
bool QQmlListReference::replace(qsizetype index, QObject *object) const
Sustituye el elemento index de la lista por object. Devuelve true si la operación se ha realizado correctamente, en caso contrario false.
Véase también canReplace().
[since 6.2] qsizetype QQmlListReference::size() const
Devuelve el número de elementos de la lista, o 0 si la operación falló.
Esta función se introdujo en Qt 6.2.
bool QQmlListReference::operator==(const QQmlListReference &other) const
Compara este QQmlListReference con other, y devuelve true si son iguales. Los dos sólo se consideran iguales si uno se creó a partir del otro mediante asignación de copia o construcción de copia.
Nota: Las referencias creadas independientemente al mismo objeto no se consideran iguales.
© 2026 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.