En esta página

QMetaObject Struct

La clase QMetaObject contiene meta-información sobre objetos Qt. Más...

Cabecera: #include <QMetaObject>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Tipos públicos

class Connection

Funciones Públicas

QMetaClassInfo classInfo(int index) const
int classInfoCount() const
int classInfoOffset() const
const char *className() const
QMetaMethod constructor(int index) const
int constructorCount() const
QMetaEnum enumerator(int index) const
int enumeratorCount() const
int enumeratorOffset() const
int indexOfClassInfo(const char *name) const
int indexOfConstructor(const char *constructor) const
int indexOfEnumerator(const char *name) const
int indexOfMethod(const char *method) const
int indexOfProperty(const char *name) const
int indexOfSignal(const char *signal) const
int indexOfSlot(const char *slot) const
bool inherits(const QMetaObject *metaObject) const
(since 6.2) QMetaType metaType() const
QMetaMethod method(int index) const
int methodCount() const
int methodOffset() const
(since 6.5) QObject *newInstance(Args &&... arguments) const
QMetaProperty property(int index) const
int propertyCount() const
int propertyOffset() const
const QMetaObject *superClass() const
QMetaProperty userProperty() const

Miembros públicos estáticos

bool checkConnectArgs(const char *signal, const char *method)
bool checkConnectArgs(const QMetaMethod &signal, const QMetaMethod &method)
(since 6.10) QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, const QObject *context, Functor functor, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.10) QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection)
void connectSlotsByName(QObject *object)
(since 6.7) bool invokeMethod(QObject *context, Functor &&function, Args &&... arguments)
bool invokeMethod(QObject *context, Functor &&function, FunctorReturnType *ret)
(since 6.5) bool invokeMethod(QObject *obj, const char *member, Args &&... args)
(since 6.7) bool invokeMethod(QObject *context, Functor &&function, QTemplatedMetaMethodReturnArgument<FunctorReturnType> ret, Args &&... arguments)
(since 6.7) bool invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type, Args &&... arguments)
bool invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type = Qt::AutoConnection, FunctorReturnType *ret = nullptr)
(since 6.5) bool invokeMethod(QObject *obj, const char *member, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)
(since 6.5) bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, Args &&... args)
(since 6.7) bool invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<FunctorReturnType> ret, Args &&... arguments)
(since 6.5) bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)
QByteArray normalizedSignature(const char *method)
QByteArray normalizedType(const char *type)

Macros

QMetaMethodArgument Q_ARG(Type, const Type &value)
QMetaMethodReturnArgument Q_RETURN_ARG(Type, Type &value)

Descripción Detallada

El sistema de meta-objetos de Qt es responsable del mecanismo de comunicación entre objetos signals y slots, de la información de tipos en tiempo de ejecución y del sistema de propiedades de Qt. Se crea una única instancia QMetaObject para cada subclase QObject que se utiliza en una aplicación, y esta instancia almacena toda la meta-información para la subclase QObject. Este objeto está disponible como QObject::metaObject().

Esta clase no suele ser necesaria para la programación de aplicaciones, pero resulta útil si se escriben metaaplicaciones, como motores de scripting o constructores de GUI.

Las funciones que probablemente le resultarán más útiles son las siguientes:

Las funciones de índice indexOfConstructor(), indexOfMethod(), indexOfEnumerator() y indexOfProperty() asignan nombres de constructores, funciones miembro, enumeradores o propiedades a índices en el metaobjeto. Por ejemplo, Qt utiliza indexOfMethod() internamente cuando se conecta una señal a una ranura.

Las clases también pueden tener una lista de pares nombre-valor de información adicional sobre la clase, almacenada en los objetos QMetaClassInfo. El número de pares se devuelve con classInfoCount(), los pares individuales se devuelven con classInfo(), y se pueden buscar pares con indexOfClassInfo().

Nota: Las operaciones que utilizan el sistema de metaobjetos suelen ser seguras para los hilos, ya que los QMetaObjects suelen ser instancias estáticas de sólo lectura generadas en tiempo de compilación. Sin embargo, si los meta objetos son modificados dinámicamente por la aplicación (por ejemplo, cuando se utiliza QQmlPropertyMap), entonces la aplicación tiene que sincronizar explícitamente el acceso al meta objeto respectivo.

Véase también QMetaClassInfo, QMetaEnum, QMetaMethod, QMetaProperty, QMetaType y Sistema de metaobjetos.

Documentación de funciones miembro

[static] bool QMetaObject::checkConnectArgs(const char *signal, const char *method)

Devuelve true si los argumentos signal y method son compatibles; en caso contrario devuelve false.

Se espera que tanto signal como method estén normalizados.

Véase también normalizedSignature().

[static] bool QMetaObject::checkConnectArgs(const QMetaMethod &signal, const QMetaMethod &method)

Devuelve true si los argumentos signal y method son compatibles; en caso contrario devuelve false.

Se trata de una función sobrecargada.

QMetaClassInfo QMetaObject::classInfo(int index) const

Devuelve los metadatos del elemento de información de clase con la dirección index.

Ejemplo:

class MyClass : public QObject
{
    Q_OBJECT
    Q_CLASSINFO("author", "Sabrina Schweinsteiger")
    Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")

public:
    //...
};

Véase también classInfoCount(), classInfoOffset() y indexOfClassInfo().

int QMetaObject::classInfoCount() const

Devuelve el número de elementos de información de esta clase.

Véase también classInfo(), classInfoOffset() y indexOfClassInfo().

int QMetaObject::classInfoOffset() const

Devuelve el desplazamiento de la información de clase para esta clase; es decir, la posición del índice del primer elemento de información de clase de esta clase.

Si la clase no tiene superclases con información de clase, el desplazamiento es 0; en caso contrario, el desplazamiento es la suma de todos los elementos de información de clase de las superclases de la clase.

Véase también classInfo(), classInfoCount() y indexOfClassInfo().

const char *QMetaObject::className() const

Devuelve el nombre de la clase.

Véase también superClass().

[static, since 6.10] template <typename Functor> QMetaObject::Connection QMetaObject::connect(const QObject *sender, const QMetaMethod &signal, const QObject *context, Functor functor, Qt::ConnectionType type = Qt::AutoConnection)

Crea una conexión de un type dado desde signal en el objeto sender a functor para ser colocado en un bucle de eventos específico de context. Devuelve un "handle" a la conexión que puede utilizarse para desconectarla posteriormente. Esto puede ser útil para conectar una señal recuperada de la introspección de meta-objetos a una lambda que captura variables locales.

Nota: Qt::UniqueConnections no funciona para lambdas, funciones no-miembro y functores; sólo se aplica a funciones miembro.

La función de ranura puede ser cualquier función o functor con igual o menos argumentos que la señal. Debe haber una coincidencia exacta entre la señal correspondiente y los argumentos del slot, las conversiones implícitas y la comprobación de tipos no son manejadas por esta función. Los functores sobrecargados deben resolverse explícitamente con la ayuda de qOverload. signal debe ser el metamétodo de una señal, de lo contrario se devolverá una conexión no válida.

La conexión se desconectará automáticamente si se destruye el emisor o el contexto. Sin embargo, debes tener cuidado de que cualquier objeto utilizado dentro del functor siga vivo cuando se emita la señal.

Esta función sobrecarga QMetaObject::connect().

Nota: Esta función es thread-safe.

Esta función se introdujo en Qt 6.10.

Ver también QObject::connect() y QObject::disconnect().

[static, since 6.10] template <typename PointerToMemberFunction> QMetaObject::Connection QMetaObject::connect(const QObject *sender, const QMetaMethod &signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection)

Crea una conexión del tipo type desde signal en el objeto sender hasta method en el objeto receiver. Devuelve un "handle" de la conexión que puede utilizarse para desconectarla posteriormente.

El handle de la conexión será inválido si no puede crear la conexión, por ejemplo, los parámetros no eran válidos. Puede comprobar si QMetaObject::Connection es válido convirtiéndolo en un bool. Pase el manejador devuelto a QObject::disconnect() para desconectar la conexión.

Una ranura puede conectarse a una señal dada si la señal tiene al menos tantos argumentos como la ranura. Debe haber una coincidencia exacta entre la señal correspondiente y los argumentos de la ranura; esta función no realiza conversiones implícitas ni comprobaciones de tipo. Las ranuras sobrecargadas deben resolverse explícitamente con la ayuda de qOverload. signal debe ser el metamétodo de una señal, de lo contrario se devolverá una conexión no válida.

Esta función sobrecarga QMetaObject::connect().

Nota: Esta función es thread-safe.

Esta función se introdujo en Qt 6.10.

Véase también QObject::connect() y QObject::disconnect().

[static] void QMetaObject::connectSlotsByName(QObject *object)

Busca recursivamente todos los objetos hijos del object dado, y conecta las señales coincidentes de ellos a las ranuras de object que siguen la siguiente forma:

void on_<object name>_<signal name>(<signal parameters>);

Supongamos que nuestro objeto tiene un objeto hijo de tipo QPushButton con el object name button1 . La ranura para capturar la señal del botón clicked() sería:

void on_button1_clicked();

Si el propio object tiene un nombre de objeto correctamente establecido, sus propias señales también están conectadas a sus respectivas ranuras.

Véase también QObject::setObjectName().

QMetaMethod QMetaObject::constructor(int index) const

Devuelve los metadatos del constructor con la dirección index.

Véase también constructorCount() y newInstance().

int QMetaObject::constructorCount() const

Devuelve el número de constructores de esta clase.

Véase también constructor() y indexOfConstructor().

QMetaEnum QMetaObject::enumerator(int index) const

Devuelve los metadatos del enumerador con la dirección index.

Véase también enumeratorCount(), enumeratorOffset() y indexOfEnumerator().

int QMetaObject::enumeratorCount() const

Devuelve el número de enumeradores de esta clase.

Véase también enumerator(), enumeratorOffset() y indexOfEnumerator().

int QMetaObject::enumeratorOffset() const

Devuelve el desplazamiento del enumerador de esta clase; es decir, la posición del índice del primer enumerador de esta clase.

Si la clase no tiene superclases con enumeradores, el desplazamiento es 0; en caso contrario, el desplazamiento es la suma de todos los enumeradores de las superclases de la clase.

Véase también enumerator(), enumeratorCount(), y indexOfEnumerator().

int QMetaObject::indexOfClassInfo(const char *name) const

Busca el elemento de información de clase name y devuelve su índice; en caso contrario, devuelve -1.

Véase también classInfo(), classInfoCount() y classInfoOffset().

int QMetaObject::indexOfConstructor(const char *constructor) const

Encuentra constructor y devuelve su índice; en caso contrario devuelve -1.

Tenga en cuenta que constructor tiene que estar en forma normalizada, como la devuelta por normalizedSignature().

Véase también constructor(), constructorCount() y normalizedSignature().

int QMetaObject::indexOfEnumerator(const char *name) const

Encuentra el enumerador name y devuelve su índice; en caso contrario devuelve -1.

Véase también enumerator(), enumeratorCount() y enumeratorOffset().

int QMetaObject::indexOfMethod(const char *method) const

Encuentra method y devuelve su índice; en caso contrario devuelve -1.

Tenga en cuenta que method tiene que estar en forma normalizada, como la devuelta por normalizedSignature().

Véase también method(), methodCount(), methodOffset() y normalizedSignature().

int QMetaObject::indexOfProperty(const char *name) const

Encuentra la propiedad name y devuelve su índice; en caso contrario devuelve -1.

Véase también property(), propertyCount() y propertyOffset().

int QMetaObject::indexOfSignal(const char *signal) const

Encuentra signal y devuelve su índice; en caso contrario devuelve -1.

Esto es lo mismo que indexOfMethod(), excepto que devolverá -1 si el método existe pero no es una señal.

Tenga en cuenta que signal tiene que estar en forma normalizada, como la devuelta por normalizedSignature().

Véase también indexOfMethod(), normalizedSignature(), method(), methodCount(), y methodOffset().

int QMetaObject::indexOfSlot(const char *slot) const

Encuentra slot y devuelve su índice; en caso contrario devuelve -1.

Esto es lo mismo que indexOfMethod(), excepto que devolverá -1 si el método existe pero no es un slot.

Véase también indexOfMethod(), method(), methodCount() y methodOffset().

[noexcept] bool QMetaObject::inherits(const QMetaObject *metaObject) const

Devuelve true si la clase descrita por este QMetaObject hereda el tipo descrito por metaObject; en caso contrario devuelve false.

Se considera que un tipo se hereda a sí mismo.

[static] template <typename Functor, typename FunctorReturnType> bool QMetaObject::invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type = Qt::AutoConnection, FunctorReturnType *ret = nullptr)

[static] template <typename Functor, typename FunctorReturnType> bool QMetaObject::invokeMethod(QObject *context, Functor &&function, FunctorReturnType *ret)

Invoca el function en el bucle de eventos de context. function puede ser un functor o un puntero a una función miembro. Devuelve true si se pudo invocar la función. Devuelve false si no existe tal función o los parámetros no coinciden. El valor de retorno de la llamada a la función se coloca en ret.

Si se establece type, la función se invoca utilizando ese tipo de conexión. En caso contrario, se utilizará Qt::AutoConnection.

Nota: Esta función es thread-safe.

[static, since 6.7] template < typename Functor, typename FunctorReturnType, typename... Args > bool QMetaObject::invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<FunctorReturnType> ret, Args &&... arguments)

[static, since 6.7] template < typename Functor, typename FunctorReturnType, typename... Args > bool QMetaObject::invokeMethod(QObject *context, Functor &&function, QTemplatedMetaMethodReturnArgument<FunctorReturnType> ret, Args &&... arguments)

[static, since 6.7] template <typename Functor, typename... Args> bool QMetaObject::invokeMethod(QObject *context, Functor &&function, Qt::ConnectionType type, Args &&... arguments)

[static, since 6.7] template <typename Functor, typename... Args> bool QMetaObject::invokeMethod(QObject *context, Functor &&function, Args &&... arguments)

Invoca el function con arguments en el bucle de eventos de context. function puede ser un functor o un puntero a una función miembro. Devuelve true si la función pudo ser invocada. El valor de retorno de la llamada a la función se coloca en ret. El objeto utilizado para el argumento ret debe obtenerse pasando su objeto a qReturnArg(). Por ejemplo:

MyClass *obj = ...;
int result = 0;
QMetaObject::invokeMethod(obj, &MyClass::myMethod, qReturnArg(result), parameter);

Si se establece type, la función se invocará utilizando ese tipo de conexión. En caso contrario, se utilizará Qt::AutoConnection.

Nota: Esta función es thread-safe.

Estas funciones se introdujeron en Qt 6.7.

[static, since 6.5] template <typename ReturnArg, typename... Args> bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)

[static, since 6.5] template <typename ReturnArg, typename... Args> bool QMetaObject::invokeMethod(QObject *obj, const char *member, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)

[static, since 6.5] template <typename... Args> bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, Args &&... args)

[static, since 6.5] template <typename... Args> bool QMetaObject::invokeMethod(QObject *obj, const char *member, Args &&... args)

Invoca el member (una señal o un nombre de ranura) en el objeto obj. Devuelve true si el miembro pudo ser invocado. Devuelve false si no existe tal miembro o los parámetros no coinciden.

Para las sobrecargas con un parámetro QTemplatedMetaMethodReturnArgument, el valor de retorno de la llamada a la función member se coloca en ret. Para las sobrecargas sin dicho miembro, se descartará el valor de retorno de la función llamada (si existe). QTemplatedMetaMethodReturnArgument es un tipo interno que no debe utilizarse directamente. En su lugar, utilice la función qReturnArg().

Las sobrecargas con un parámetro Qt::ConnectionType type permiten seleccionar explícitamente si la invocación será síncrona o no:

  • Si type es Qt::DirectConnection, el miembro se invocará inmediatamente en el subproceso actual.
  • Si type es Qt::QueuedConnection, se enviará un QEvent y el miembro se invocará en cuanto la aplicación entre en el bucle de eventos en el hilo en el que se creó o al que se movió el obj.
  • Si type es Qt::BlockingQueuedConnection, el método se invocará de la misma manera que para Qt::QueuedConnection, excepto que el hilo actual se bloqueará hasta que se envíe el evento. El uso de este tipo de conexión para comunicarse entre objetos en el mismo hilo provocará bloqueos.
  • Si type es Qt::AutoConnection, el miembro se invoca de forma sincrónica si obj vive en el mismo hilo que el invocador; en caso contrario, invocará al miembro de forma asincrónica. Este es el comportamiento de las sobrecargas que no tienen el parámetro type.

Sólo es necesario pasar el nombre de la señal o ranura a esta función, no la firma completa. Por ejemplo, para invocar de forma asíncrona la ranura quit() en un QThread, utilice el siguiente código:

QMetaObject::invokeMethod(thread, "quit", Qt::QueuedConnection);

Con invocaciones de métodos asíncronos, los parámetros deben ser tipos copiables, porque Qt necesita copiar los argumentos para almacenarlos en un evento entre bastidores. Desde Qt 6.5, esta función registra automáticamente los tipos que se utilizan; sin embargo, como efecto secundario, no es posible realizar llamadas utilizando tipos que sólo estén declarados hacia adelante. Además, tampoco es posible realizar llamadas asíncronas que utilicen como parámetros referencias a tipos no calificados const.

Para invocar sincrónicamente la ranura compute(QString, int, double) en algún objeto arbitrario obj recuperar su valor de retorno:

QString retVal;
QMetaObject::invokeMethod(obj, "compute", Qt::DirectConnection,
                          qReturnArg(retVal),
                          QString("sqrt"), 42, 9.7);

Si la ranura "compute" no toma exactamente un QString, un int, y un double en el orden especificado, la llamada fallará. Nótese cómo fue necesario ser explícito sobre el tipo de QString, ya que el literal de carácter no es exactamente el tipo correcto para coincidir. Si el método en su lugar tomara un QStringView, un qsizetype, y un float, la llamada necesitaría ser escrita como:

QString retVal;
QMetaObject::invokeMethod(obj, "compute", Qt::DirectConnection,
                          qReturnArg(retVal),
                          QStringView(u"sqrt"), qsizetype(42), 9.7f);

La misma llamada puede ejecutarse utilizando las macros Q_ARG() y Q_RETURN_ARG() , como en:

    QString retVal;
    QMetaObject::invokeMethod(obj, "compute", Qt::DirectConnection,
                              Q_RETURN_ARG(QString, retVal),
                              Q_ARG(QString, "sqrt"),
                              Q_ARG(int, 42),
                              Q_ARG(double, 9.7));

Las macros se mantienen por compatibilidad con Qt 6.4 y versiones anteriores, y pueden mezclarse libremente con parámetros que no utilicen la macro. Pueden ser necesarias en raras situaciones cuando se llama a un método que utilizó un tipo typedef to forward-declarado como un parámetro o el tipo de retorno.

Nota: Esta función es thread-safe.

Estas funciones se introdujeron en Qt 6.5.

Véase también Q_ARG(), Q_RETURN_ARG(), y QMetaMethod::invoke().

[since 6.2] QMetaType QMetaObject::metaType() const

Devuelve el metateipo correspondiente a este metaobjeto. Si el metaobjeto proviene de un espacio de nombres, se devuelve un metateipo inválido.

Esta función se introdujo en Qt 6.2.

QMetaMethod QMetaObject::method(int index) const

Devuelve los metadatos del método con la dirección index.

Véase también methodCount(), methodOffset() y indexOfMethod().

int QMetaObject::methodCount() const

Devuelve el número de métodos de esta clase, incluyendo el número de métodos proporcionados por cada clase base. Éstos incluyen señales y ranuras, así como funciones miembro normales.

Utilice código como el siguiente para obtener un QStringList que contenga los métodos específicos de una clase determinada:

const QMetaObject* metaObject = obj->metaObject();
QStringList methods;
for (int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
    methods << QString::fromLatin1(metaObject->method(i).methodSignature());

Véase también method(), methodOffset(), y indexOfMethod().

int QMetaObject::methodOffset() const

Devuelve el desplazamiento del método de esta clase; es decir, la posición del índice de la primera función miembro de esta clase.

El desplazamiento es la suma de todos los métodos de las superclases de la clase (que siempre es positiva, ya que QObject tiene la ranura deleteLater() y una señal destroyed()).

Véase también method(), methodCount(), y indexOfMethod().

[since 6.5] template <typename... Args> QObject *QMetaObject::newInstance(Args &&... arguments) const

Construye una nueva instancia de esta clase y devuelve el nuevo objeto, o nullptr si no hay disponible un constructor adecuado. Los tipos de los argumentos arguments se utilizarán para encontrar un constructor que coincida, y luego se reenviarán a él de la misma manera que lo hacen las conexiones de ranura de señal.

Tenga en cuenta que sólo los constructores declarados con el modificador Q_INVOKABLE están disponibles a través del sistema de meta-objetos.

Esta función se introdujo en Qt 6.5.

Véase también constructor().

[static] QByteArray QMetaObject::normalizedSignature(const char *method)

Normaliza la firma de method.

Qt utiliza firmas normalizadas para decidir si dos señales y ranuras dadas son compatibles. La normalización reduce los espacios en blanco al mínimo, mueve 'const' al frente cuando es apropiado, elimina 'const' de los tipos de valor y reemplaza las referencias const por valores.

Véase también checkConnectArgs() y normalizedType().

[static] QByteArray QMetaObject::normalizedType(const char *type)

Normaliza un type.

Véase QMetaObject::normalizedSignature() para una descripción de cómo normaliza Qt.

Ejemplo:

QByteArray normType = QMetaObject::normalizedType(" int    const  *");
// normType is now "const int*"

Véase también normalizedSignature().

QMetaProperty QMetaObject::property(int index) const

Devuelve los metadatos de la propiedad con la dirección index. Si no existe tal propiedad, se devuelve un QMetaProperty nulo.

Véase también propertyCount(), propertyOffset() y indexOfProperty().

int QMetaObject::propertyCount() const

Devuelve el número de propiedades de esta clase, incluyendo el número de propiedades proporcionadas por cada clase base.

Utilice código como el siguiente para obtener un QStringList que contenga las propiedades específicas de una clase determinada:

const QMetaObject* metaObject = obj->metaObject();
QStringList properties;
for (int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i)
    properties << QString::fromLatin1(metaObject->property(i).name());

Véase también property(), propertyOffset(), y indexOfProperty().

int QMetaObject::propertyOffset() const

Devuelve el desplazamiento de la propiedad de esta clase; es decir, la posición del índice de la primera propiedad de esta clase.

El desplazamiento es la suma de todas las propiedades de las superclases de la clase (que siempre es positiva ya que QObject tiene la propiedad objectName ).

Véase también property(), propertyCount() y indexOfProperty().

const QMetaObject *QMetaObject::superClass() const

Devuelve el metaobjeto de la superclase, o nullptr si no existe tal objeto.

Véase también className().

QMetaProperty QMetaObject::userProperty() const

Devuelve la propiedad que tiene el indicador USER establecido en true.

Véase también QMetaProperty::isUser().

Documentación de macros

QMetaMethodArgument Q_ARG(Type, const Type &value)

Esta macro toma un Type y un value de ese tipo y devuelve un QMetaMethodArgument, que puede pasarse a la plantilla QMetaObject::invokeMethod() con los argumentos Args &&....

Véase también Q_RETURN_ARG().

QMetaMethodReturnArgument Q_RETURN_ARG(Type, Type &value)

Esta macro toma un Type y una referencia no-const a un value de ese tipo y devuelve un QMetaMethodReturnArgument, que puede pasarse a la plantilla QMetaObject::invokeMethod() con los argumentos Args &&....

Véase también Q_ARG().

© 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.