Sur cette page

QDesignerMemberSheetExtension Class

La classe `QDesignerMemberSheetExtension` vous permet de manipuler les fonctions membres d’un widget qui s’affichent lors de la configuration des connexions à l’aide du mode d’édition des signaux et des slots de l’ Qt Widgets Designer. En savoir plus…

En-tête : #include <QDesignerMemberSheetExtension>
CMake : find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake : QT += designer

Fonctions publiques

QDesignerMemberSheetExtension()
QDesignerMemberSheetExtension(const QDesignerMemberSheetExtension &)
QDesignerMemberSheetExtension(QDesignerMemberSheetExtension &&)
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
QDesignerMemberSheetExtension &operator=(QDesignerMemberSheetExtension &&)
QDesignerMemberSheetExtension &operator=(const QDesignerMemberSheetExtension &)

Description détaillée

QDesignerMemberSheetExtension est un ensemble de fonctions généralement utilisé pour interroger les fonctions membres d'un widget et pour manipuler l'affichage de ces fonctions dans le mode d'édition des signaux et des slots d'Qt Widgets Designer. Par exemple :

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

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

delete memberSheet;

Lors de l’implémentation d’un plugin de widget personnalisé, un pointeur vers l’objet « QDesignerFormEditorInterface » (formEditor dans l’exemple ci-dessus) de Qt Widgets Designer est fourni par le paramètre de la fonction QDesignerCustomWidgetInterface::initialize().

La feuille de membres (et toute autre extension) peut être récupérée en interrogeant le gestionnaire d’extensions d’ Qt Widgets Designer à l’aide de la fonction qt_extension(). Lorsque vous souhaitez libérer l’extension, il vous suffit de supprimer le pointeur.

Tous les widgets disposent d’une feuille de membres par défaut utilisée dans le mode d’édition des signaux et des slots d’ Qt Widgets Designer avec les fonctions membres du widget. Cependant, QDesignerMemberSheetExtension fournit également une interface permettant de créer des extensions de feuille de membres personnalisées.

Qt Widgets Avertissement : le Designerd’ Qt Widgets utilise QDesignerMemberSheetExtension pour faciliter le mode d’édition des signaux et des slots. Chaque fois qu’une connexion entre deux widgets est demandée, le Designer d’ interroge les extensions de feuille de membres des widgets. Si un widget dispose d’une extension de feuille de membres implémentée, celle-ci remplacera la feuille de membres par défaut.

Pour créer une extension de feuille de membres, votre classe d’extension doit hériter à la fois de ` QObject ` et de `QDesignerMemberSheetExtension`. Ensuite, puisque nous implémentons une interface, nous devons nous assurer qu’elle est signalée au système de méta-objets à l’aide de la macro ` Q_INTERFACES()` :

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

public:
    ...
}

Cela permet à Qt Widgets Designer d’utiliser qobject_cast() pour rechercher les interfaces prises en charge à l’aide d’un simple pointeur QObject.

Dans Qt Widgets Designer, les extensions ne sont créées qu’au moment où elles sont requises. C’est pourquoi, lors de l’implémentation d’une extension de feuille de membres, vous devez également créer une classe ` QExtensionFactory`, c’est-à-dire une classe capable de créer une instance de votre extension, et l’enregistrer à l’aide de la méthode ` extension manager` de Qt Widgets Designer.

Lorsqu’une extension de feuille de membres d’un widget est requise, le ` extension manager ` d’ Qt Widgets Designer parcourt toutes ses fabriques enregistrées en appelant ` QExtensionFactory::createExtension()` pour chacune d’entre elles, jusqu’à ce qu’il trouve la première capable de créer une extension de feuille de membres pour ce widget. Cette fabrique créera alors une instance de l’extension. Si aucune fabrique de ce type n’est trouvée, Qt Widgets Designer utilisera la feuille de membres par défaut.

Il existe quatre types d’extensions disponibles dans Qt Widgets Designer : QDesignerContainerExtension, QDesignerMemberSheetExtension, QDesignerPropertySheetExtension et QDesignerTaskMenuExtension. Le comportement d’ Qt Widgets Designer est le même, que l’extension demandée soit associée à un conteneur multipages, à une feuille de membres, à une feuille de propriétés ou à un menu de tâches.

La classe ` QExtensionFactory ` fournit une fabrique d’extensions standard et peut également servir d’interface pour des fabriques d’extensions personnalisées. Vous pouvez soit créer une nouvelle classe ` QExtensionFactory ` et réimplémenter la fonction ` QExtensionFactory::createExtension()`. Par exemple :

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;
}

Ou bien vous pouvez utiliser une fabrique existante, en étendant la fonction ` QExtensionFactory::createExtension()` afin que la fabrique puisse également créer une extension de feuille de membres. Par exemple :

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;
    }
}

Pour un exemple complet utilisant une classe d’extension, consultez l’exemple « Extension du menu des tâches ». Cet exemple montre comment créer un plugin de widget personnalisé pour Qt Designer, et comment utiliser la classe QDesignerTaskMenuExtension pour ajouter des éléments personnalisés au menu des tâches de Qt Widgets Designer.

Voir également QExtensionFactory, QExtensionManager et Création d’extensions de widgets personnalisées.

Documentation sur les fonctions membres

[constexpr noexcept default] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension()

Construit par défaut une instance de ` QDesignerMemberSheetExtension`.

[delete] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension(const QDesignerMemberSheetExtension &)

Copie et construit une instance de ` QDesignerMemberSheetExtension`. Cette fonction est supprimée.

[delete] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension(QDesignerMemberSheetExtension &&)

Crée par « move » une instance de ` QDesignerMemberSheetExtension`. Cette fonction est supprimée.

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

Supprime l'extension de la feuille des membres.

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

Renvoie le nombre de fonctions membres de l'extension.

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

Renvoie le nom de la classe dans laquelle est déclarée la fonction membre dont l'index est spécifiée.

Voir également ` indexOf()`.

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

Renvoie l'index de la fonction membre spécifiée par l'name on fournie.

Voir aussi memberName().

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

Renvoie « true » si la fonction membre ayant l'index on indiquée est héritée de QWidget, sinon « false ».

Voir aussi indexOf().

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

Renvoie « true » si la fonction membre dont l'index est spécifiée est un signal ; sinon, renvoie « false ».

Voir aussi indexOf().

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

Renvoie « true » si la fonction membre dont l'index est spécifiée est un slot, sinon « false ».

Voir également ` indexOf()`.

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

Renvoie « true » si la fonction membre dont l'index est spécifiée est visible dans l'éditeur de signaux et de slots d'Qt Widgets Designer ; sinon, renvoie « false ».

Voir également ` indexOf()` et ` setVisible()`.

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

Renvoie le nom du groupe de membres spécifié pour la fonction avec l'index on fournie.

Voir également indexOf() et setMemberGroup().

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

Renvoie le nom de la fonction membre associée à l'index on fournie.

Voir aussi ` indexOf()`.

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

Renvoie les noms des paramètres de la fonction membre dont l'index e est spécifiée, sous la forme d'une liste de type QByteArray.

Voir également ` indexOf()` et ` parameterTypes()`.

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

Renvoie les types des paramètres de la fonction membre dont l'index est spécifiée, sous la forme d'une liste de type « QByteArray ».

Voir également ` indexOf()` et ` parameterNames()`.

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

Définit le groupe d'appartenance de la fonction membre dont l'index est spécifiée sur group.

Voir également indexOf() et memberGroup().

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

Si visible est vrai, la fonction membre dont l'index est indiquée est visible dans le mode d'édition des signaux et des slots de Qt Widgets Designer ; dans le cas contraire, la fonction membre est masquée.

Voir également indexOf() et isVisible().

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

Renvoie la signature de la fonction membre avec l'index on indiquée.

Voir aussi indexOf().

[delete] QDesignerMemberSheetExtension &QDesignerMemberSheetExtension::operator=(QDesignerMemberSheetExtension &&)

La commande « Move » attribue « other » à cette instance « QDesignerMemberSheetExtension ». Cette fonction est supprimée.

[delete] QDesignerMemberSheetExtension &QDesignerMemberSheetExtension::operator=(const QDesignerMemberSheetExtension &)

Copie et attribue ` other ` à cette instance de ` QDesignerMemberSheetExtension `. Cette fonction est supprimée.

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