Auf dieser Seite

QDesignerMemberSheetExtension Class

Mit der Klasse „QDesignerMemberSheetExtension“ können Sie die Mitgliedsfunktionen eines Widgets bearbeiten, die bei der Konfiguration von Verbindungen im Modus zur Bearbeitung von Signalen und Slots des „ Qt Widgets -Designers“ angezeigt werden. Mehr...

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

Öffentliche Funktionen

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 &)

Ausführliche Beschreibung

QDesignerMemberSheetExtension ist eine Sammlung von Funktionen, die typischerweise dazu dient, die Member-Funktionen eines Widgets abzufragen und deren Darstellung im Bearbeitungsmodus für Signale und Slots des „ Qt Widgets -Designers“ zu manipulieren. Beispiel:

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

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

delete memberSheet;

Bei der Implementierung eines benutzerdefinierten Widget-Plugins wird ein Zeiger auf das aktuelle „ QDesignerFormEditorInterface “-Objekt des „ Qt Widgets “ Designers (im obigen Beispiel „formEditor “) über den Parameter der Funktion „ QDesignerCustomWidgetInterface::initialize()“ bereitgestellt.

Das Member-Sheet (und jede andere Erweiterung) kann durch Abfrage des Erweiterungsmanagers des „ Qt Widgets “ Designers mithilfe der Funktion ` qt_extension()` abgerufen werden. Wenn Sie die Erweiterung freigeben möchten, müssen Sie lediglich den Zeiger löschen.

Alle Widgets verfügen über ein Standard-Member-Sheet, das im Bearbeitungsmodus für Signale und Slots des „ Qt Widgets “ Designers mit den Member-Funktionen des Widgets verwendet wird. QDesignerMemberSheetExtension bietet jedoch auch eine Schnittstelle zum Erstellen benutzerdefinierter Member-Sheet-Erweiterungen.

Warnung: Der „ Qt Widgets “ Designer nutzt die `QDesignerMemberSheetExtension`, um den Bearbeitungsmodus für Signale und Slots zu ermöglichen. Immer wenn eine Verbindung zwischen zwei Widgets angefordert wird, fragt der „ Qt Widgets “ Designer nach den Member-Sheet-Erweiterungen der Widgets. Verfügt ein Widget über eine implementierte Member-Sheet-Erweiterung, überschreibt diese das Standard-Member-Sheet.

Um eine Member-Sheet-Erweiterung zu erstellen, muss Ihre Erweiterungsklasse sowohl von „ QObject “ als auch von „QDesignerMemberSheetExtension“ erben. Da wir eine Schnittstelle implementieren, müssen wir außerdem sicherstellen, dass diese dem Metaobjektsystem mithilfe des Makros „ Q_INTERFACES()“ bekannt gegeben wird:

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

public:
    ...
}

Dadurch kann der „ Qt Widgets Designer“ mithilfe von ` qobject_cast()` nach unterstützten Schnittstellen abfragen, wobei er lediglich einen ` QObject `-Zeiger verwendet.

Im „ Qt Widgets Designer“ werden die Erweiterungen erst dann erstellt, wenn sie benötigt werden. Aus diesem Grund müssen Sie bei der Implementierung einer Member-Sheet-Erweiterung auch eine ` QExtensionFactory` erstellen, d. h. eine Klasse, die eine Instanz Ihrer Erweiterung erstellen kann, und diese mithilfe von „ extension manager “ im „ Qt Widgets Designer“ registrieren.

Wenn die Member-Sheet-Erweiterung eines Widgets benötigt wird, durchläuft die „ extension manager “ des „ Qt Widgets “-Designers alle registrierten Fabriken und ruft für jede davon „ QExtensionFactory::createExtension()“ auf, bis die erste gefunden wird, die in der Lage ist, eine Member-Sheet-Erweiterung für dieses Widget zu erstellen. Diese Fabrik erstellt dann eine Instanz der Erweiterung. Wird keine solche Fabrik gefunden, verwendet der „ Qt Widgets “-Designer das Standard-Member-Sheet.

Im „ Qt Widgets “-Designer stehen vier Arten von Erweiterungen zur Verfügung: „ QDesignerContainerExtension “, „QDesignerMemberSheetExtension“, „ QDesignerPropertySheetExtension “ und „ QDesignerTaskMenuExtension “. Das Verhalten des „ Qt Widgets “-Designers ist unabhängig davon, ob die angeforderte Erweiterung mit einem mehrseitigen Container, einem Member-Sheet, einem Property-Sheet oder einem Aufgabenmenü verknüpft ist.

Die Klasse „ QExtensionFactory “ stellt eine Standard-Erweiterungsfabrik bereit und kann auch als Schnittstelle für benutzerdefinierte Erweiterungsfabriken verwendet werden. Sie können entweder eine neue „ QExtensionFactory “ erstellen und die Funktion „ QExtensionFactory::createExtension()“ neu implementieren. Beispiel:

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

Oder Sie können eine vorhandene Factory verwenden und die Funktion ` QExtensionFactory::createExtension()` erweitern, damit die Factory auch eine Member-Sheet-Erweiterung erstellen kann. Zum Beispiel:

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

Ein vollständiges Beispiel für die Verwendung einer Erweiterungsklasse finden Sie im Beispiel „Task-Menü-Erweiterung“. Das Beispiel zeigt, wie Sie ein benutzerdefiniertes Widget-Plugin für „ Qt Designer “ erstellen und wie Sie mithilfe der Klasse „ QDesignerTaskMenuExtension “ benutzerdefinierte Elemente zum Aufgabenmenü des „ Qt Widgets Designer“ hinzufügen.

Siehe auch „ QExtensionFactory“ , „ QExtensionManager “ und „Erstellen benutzerdefinierter Widget-Erweiterungen“.

Dokumentation zu Member-Funktionen

[constexpr noexcept default] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension()

Erstellt standardmäßig eine Instanz von ` QDesignerMemberSheetExtension`.

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

Erstellt eine Instanz von „ QDesignerMemberSheetExtension “ durch Kopieren. Diese Funktion wurde gelöscht.

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

Erstellt eine Instanz von ` QDesignerMemberSheetExtension`. Diese Funktion wurde entfernt.

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

Löscht die Erweiterung „Member Sheet“.

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

Gibt die Anzahl der Mitgliedsfunktionen der Erweiterung zurück.

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

Gibt den Namen der Klasse zurück, in der die Memberfunktion mit dem angegebenen index deklariert ist.

Siehe auch ` indexOf()`.

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

Gibt den Index der durch die angegebene ` name` angegebenen Mitgliedsfunktion zurück.

Siehe auch ` memberName()`.

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

Gibt „true“ zurück, wenn die Memberfunktion mit dem angegebenen „ index “ von „ QWidget “ geerbt wurde, andernfalls „false“.

Siehe auch ` indexOf()`.

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

Gibt „true“ zurück, wenn die Mitgliedsfunktion mit dem angegebenen index ein Signal ist, andernfalls „false“.

Siehe auch ` indexOf()`.

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

Gibt „true“ zurück, wenn die Mitgliedsfunktion mit dem angegebenen „ index “ ein Slot ist, andernfalls „false“.

Siehe auch ` indexOf()`.

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

Gibt „true“ zurück, wenn die Memberfunktion mit dem angegebenen „ index “ im Signal- und Slot-Editor von „ Qt Widgets Designer“ sichtbar ist, andernfalls „false“.

Siehe auch ` indexOf()` und ` setVisible()`.

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

Gibt den Namen der für die Funktion mit dem angegebenen index festgelegten Mitgliedergruppe zurück.

Siehe auch ` indexOf()` und ` setMemberGroup()`.

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

Gibt den Namen der Mitgliedsfunktion mit dem angegebenen „ index “ zurück.

Siehe auch ` indexOf()`.

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

Gibt die Parameternamen der Mitgliedsfunktion mit dem angegebenen „ index “ als „ QByteArray “-Liste zurück.

Siehe auch ` indexOf()` und ` parameterTypes()`.

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

Gibt die Parametertypen der Mitgliedsfunktion mit dem angegebenen „ index “ als „ QByteArray “-Liste zurück.

Siehe auch ` indexOf()` und ` parameterNames()`.

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

Setzt die Mitgliedergruppe der Mitgliedsfunktion mit der angegebenen index auf group.

Siehe auch ` indexOf()` und ` memberGroup()`.

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

Wenn „ visible “ auf „true“ gesetzt ist, ist die Mitgliedsfunktion mit dem angegebenen „ index “ im Bearbeitungsmodus für Signale und Slots des „ Qt Widgets “-Designers sichtbar; andernfalls ist die Mitgliedsfunktion ausgeblendet.

Siehe auch „ indexOf()“ und „ isVisible()“.

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

Gibt die Signatur der Memberfunktion mit dem angegebenen index zurück.

Siehe auch ` indexOf()`.

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

Weist „ other “ dieser „ QDesignerMemberSheetExtension “-Instanz zu. Diese Funktion wird gelöscht.

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

Weist dieser QDesignerMemberSheetExtension -Instanz „ other “ zu. Diese Funktion wird gelöscht.

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