En esta página

QDesignerMemberSheetExtension Class

La clase QDesignerMemberSheetExtension permite manipular las funciones miembro de un widget que se muestra al configurar conexiones utilizando el modo de edición de señales y ranuras de Qt Widgets Designer. Más...

Cabecera: #include <QDesignerMemberSheetExtension>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer

Funciones públicas

virtual ~QDesignerMemberSheetExtension()
virtual int count() const = 0
virtual QString declaredInClass(int index) const = 0
virtual int indexOf(const QString &name) const = 0
virtual bool inheritedFromWidget(int index) const = 0
virtual bool isSignal(int index) const = 0
virtual bool isSlot(int index) const = 0
virtual bool isVisible(int index) const = 0
virtual QString memberGroup(int index) const = 0
virtual QString memberName(int index) const = 0
virtual QList<QByteArray> parameterNames(int index) const = 0
virtual QList<QByteArray> parameterTypes(int index) const = 0
virtual void setMemberGroup(int index, const QString &group) = 0
virtual void setVisible(int index, bool visible) = 0
virtual QString signature(int index) const = 0

Descripción detallada

QDesignerMemberSheetExtension es una colección de funciones que se utilizan normalmente para consultar las funciones miembro de un widget, y para manipular la apariencia de las funciones miembro en el modo de edición de señales y ranuras de Qt Widgets Designer. Por ejemplo:

QDesignerMemberSheetExtension *memberSheet = nullptr;
QExtensionManager manager = formEditor->extensionManager();

memberSheet = qt_extension<QDesignerMemberSheetExtension*>(manager, widget);
int index = memberSheet->indexOf(setEchoMode);
memberSheet->setVisible(index, false);

delete memberSheet;

Al implementar un complemento de widget personalizado, el parámetro de la función QDesignerCustomWidgetInterface::initialize() proporciona un puntero al objeto QDesignerFormEditorInterface actual de Qt Widgets Designer (formEditor en el ejemplo anterior).

La hoja de miembro (y cualquier otra extensión), puede ser recuperada consultando el gestor de extensiones de Qt Widgets Designer utilizando la función qt_extension(). Cuando quieras liberar la extensión, sólo tienes que borrar el puntero.

Todos los widgets tienen una hoja de miembros por defecto que se utiliza en Qt Widgets Modo de edición de señales y ranuras de Designer con las funciones miembro del widget. Pero QDesignerMemberSheetExtension también proporciona una interfaz para crear extensiones de hoja de miembros personalizadas.

Advertencia: Qt Widgets Designer utiliza QDesignerMemberSheetExtension para facilitar el modo de edición de señales y ranuras. Siempre que se solicite una conexión entre dos widgets, Qt Widgets Designer consultará las extensiones de hoja de miembro de los widgets. Si un widget tiene una extensión de hoja de miembro implementada, esta extensión sustituirá a la hoja de miembro por defecto.

Para crear una extensión de hoja de miembro, tu clase de extensión debe heredar tanto de QObject como de QDesignerMemberSheetExtension. A continuación, puesto que estamos implementando una interfaz, debemos asegurarnos de que se da a conocer al sistema de metaobjetos mediante la macro Q_INTERFACES():

class MyMemberSheetExtension : public QObject,
        public QDesignerMemberSheetExtension
{
    Q_OBJECT
    Q_INTERFACES(QDesignerMemberSheetExtension)

public:
    ...
}

Esto permite a Qt Widgets Designer utilizar qobject_cast() para consultar las interfaces soportadas utilizando únicamente un puntero QObject.

En Qt Widgets Designer las extensiones no se crean hasta que son necesarias. Por este motivo, al implementar una extensión de la hoja de miembros, también debes crear una QExtensionFactory, es decir, una clase que sea capaz de crear una instancia de tu extensión, y registrarla utilizando extension manager de Qt Widgets Designer.

Cuando se necesite una extensión de la hoja de miembros de un widget, Qt Widgets Designer's extension manager recorrerá todas las fábricas registradas llamando a QExtensionFactory::createExtension() para cada una de ellas hasta que encuentre la primera que pueda crear una extensión de la hoja de miembros para ese widget. Esta fábrica creará una instancia de la extensión. Si no se encuentra dicha fábrica, Qt Widgets Designer utilizará la hoja de miembros por defecto.

Existen cuatro tipos de extensiones disponibles en Qt Widgets Designer: QDesignerContainerExtension QDesignerMemberSheetExtension, QDesignerPropertySheetExtension y QDesignerTaskMenuExtension. Qt Widgets El comportamiento de Designer es el mismo tanto si la extensión solicitada está asociada a un contenedor multipágina, una hoja de miembros, una hoja de propiedades o un menú de tareas.

La clase QExtensionFactory proporciona una fábrica de extensiones estándar y también puede utilizarse como interfaz para fábricas de extensiones personalizadas. Puede crear un nuevo QExtensionFactory y reimplementar la función QExtensionFactory::createExtension(). por ejemplo:

QObject *ANewExtensionFactory::createExtension(QObject *object,
        const QString &iid, QObject *parent) const
{
    if (iid != Q_TYPEID(QDesignerMemberSheetExtension))
        return 0;

    if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
           (object))
        return new MyMemberSheetExtension(widget, parent);

    return 0;
}

O puede utilizar una fábrica existente, ampliando la función QExtensionFactory::createExtension() para que la fábrica pueda crear también una extensión de hoja de miembro. Por ejemplo:

QObject *AGeneralExtensionFactory::createExtension(QObject *object,
        const QString &iid, QObject *parent) const
{
    MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

    if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
        return new MyTaskMenuExtension(widget, parent);

    } else if (widget && (iid == Q_TYPEID(QDesignerMemberSheetExtension))) {
        return new MyMemberSheetExtension(widget, parent);

    } else {
        return 0;
    }
}

Para ver un ejemplo completo utilizando una clase de extensión, consulte Ejemplo de extensión del menú de tareas. El ejemplo muestra cómo crear un complemento de widget personalizado para Qt Designer, y cómo utilizar la clase QDesignerTaskMenuExtension para añadir elementos personalizados al menú de tareas de Qt Widgets Designer.

Consulte también QExtensionFactory, QExtensionManager, y Creación de extensiones de widgets personalizados.

Documentación de funciones miembro

[virtual constexpr noexcept] QDesignerMemberSheetExtension::~QDesignerMemberSheetExtension()

Destruye la extensión de la hoja de miembro.

[pure virtual] int QDesignerMemberSheetExtension::count() const

Devuelve el número de funciones miembro de la extensión.

[pure virtual] QString QDesignerMemberSheetExtension::declaredInClass(int index) const

Devuelve el nombre de la clase en la que está declarada la función miembro con la dirección index dada.

Véase también indexOf().

[pure virtual] int QDesignerMemberSheetExtension::indexOf(const QString &name) const

Devuelve el índice de la función miembro especificada en name.

Véase también memberName().

[pure virtual] bool QDesignerMemberSheetExtension::inheritedFromWidget(int index) const

Devuelve true si la función miembro con el index dado es heredada de QWidget, de lo contrario false.

Véase también indexOf().

[pure virtual] bool QDesignerMemberSheetExtension::isSignal(int index) const

Devuelve true si la función miembro con el index dado es una señal, en caso contrario false.

Véase también indexOf().

[pure virtual] bool QDesignerMemberSheetExtension::isSlot(int index) const

Devuelve true si la función miembro con el index dado es una ranura, en caso contrario false.

Véase también indexOf().

[pure virtual] bool QDesignerMemberSheetExtension::isVisible(int index) const

Devuelve true si la función miembro con el index dado es visible en el editor de señales y ranuras de Qt Widgets Designer, en caso contrario false.

Véase también indexOf() y setVisible().

[pure virtual] QString QDesignerMemberSheetExtension::memberGroup(int index) const

Devuelve el nombre del grupo de miembros especificado para la función con la dirección index.

Véase también indexOf() y setMemberGroup().

[pure virtual] QString QDesignerMemberSheetExtension::memberName(int index) const

Devuelve el nombre de la función miembro con la dirección index.

Véase también indexOf().

[pure virtual] QList<QByteArray> QDesignerMemberSheetExtension::parameterNames(int index) const

Devuelve los nombres de los parámetros de la función miembro con el index dado , como una lista QByteArray.

Véase también indexOf() y parameterTypes().

[pure virtual] QList<QByteArray> QDesignerMemberSheetExtension::parameterTypes(int index) const

Devuelve los tipos de parámetros de la función miembro con el index dado , como una lista QByteArray.

Véase también indexOf() y parameterNames().

[pure virtual] void QDesignerMemberSheetExtension::setMemberGroup(int index, const QString &group)

Establece el grupo de miembros de la función miembro con el index dado , a group.

Véase también indexOf() y memberGroup().

[pure virtual] void QDesignerMemberSheetExtension::setVisible(int index, bool visible)

Si visible es verdadero, la función miembro con el index dado es visible en el modo de edición de señales y ranuras de Qt Widgets Designer; en caso contrario, la función miembro se oculta.

Véase también indexOf() y isVisible().

[pure virtual] QString QDesignerMemberSheetExtension::signature(int index) const

Devuelve la firma de la función miembro con la dirección index.

Véase también indexOf().

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