QFormBuilder Class

Die Klasse QFormBuilder wird verwendet, um Benutzeroberflächen dynamisch aus UI-Dateien zur Laufzeit zu konstruieren. Mehr...

Kopfzeile: #include <QFormBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
Vererbt: QAbstractFormBuilder

Öffentliche Funktionen

QFormBuilder()
virtual ~QFormBuilder() override
void addPluginPath(const QString &pluginPath)
void clearPluginPaths()
QList<QDesignerCustomWidgetInterface *> customWidgets() const
QStringList pluginPaths() const
void setPluginPath(const QStringList &pluginPaths)

Detaillierte Beschreibung

Die Klasse QFormBuilder bietet einen Mechanismus zur dynamischen Erstellung von Benutzeroberflächen zur Laufzeit, basierend auf mit Qt Widgets Designer erstellten UI-Dateien. Ein Beispiel:

        MyForm::MyForm(QWidget *parent)
            : QWidget(parent)
        {
            QFormBuilder builder;
            QFile file(":/forms/myWidget.ui");
            file.open(QFile::ReadOnly);
            QWidget *myWidget = builder.load(&file, this);
            file.close();

            auto *layout = new QVBoxLayout(this);
            layout->addWidget(myWidget);
        }

Indem wir die Benutzeroberfläche in die Ressourcen des Beispiels aufnehmen (myForm.qrc), stellen wir sicher, dass sie vorhanden ist, wenn das Beispiel ausgeführt wird:

    <!DOCTYPE RCC><RCC version="1.0">
    <qresource prefix="/forms">
       <file>mywidget.ui</file>
    </qresource>
    </RCC>

QFormBuilder erweitert die Basisklasse QAbstractFormBuilder um eine Reihe von Funktionen, die zur Unterstützung benutzerdefinierter Widget-Plugins verwendet werden:

  • pluginPaths() gibt die Liste der Pfade zurück, die der Form Builder beim Laden benutzerdefinierter Widget-Plugins durchsucht.
  • addPluginPath() ermöglicht die Registrierung zusätzlicher Pfade für den Form Builder.
  • setPluginPath() wird verwendet, um die bestehende Liste der Pfade durch eine Liste zu ersetzen, die aus einer anderen Quelle stammt.
  • clearPluginPaths() entfernt alle Pfade, die mit dem Form Builder registriert sind.
  • customWidgets() gibt eine Liste von Schnittstellen zu Plugins zurück, die verwendet werden können, um neue Instanzen von registrierten benutzerdefinierten Widgets zu erstellen.

Die Klasse QFormBuilder wird typischerweise von benutzerdefinierten Komponenten und Anwendungen verwendet, die Qt Widgets Designer einbetten. Eigenständige Anwendungen, die dynamisch Benutzeroberflächen zur Laufzeit erzeugen müssen, verwenden die Klasse QUiLoader, die sich im Modul QtUiTools befindet.

Siehe auch QAbstractFormBuilder und Qt UI Tools.

Dokumentation der Mitgliedsfunktionen

QFormBuilder::QFormBuilder()

Konstruiert einen neuen Form Builder.

[override virtual noexcept] QFormBuilder::~QFormBuilder()

Zerstört den Formularersteller.

void QFormBuilder::addPluginPath(const QString &pluginPath)

Fügt einen neuen, durch pluginPath angegebenen Plugin-Pfad zur Liste der Pfade hinzu, die vom Formularersteller beim Laden eines benutzerdefinierten Widget-Plugins durchsucht werden.

Siehe auch setPluginPath() und clearPluginPaths().

void QFormBuilder::clearPluginPaths()

Löscht die Liste der Pfade, die der Formularersteller für die Suche nach benutzerdefinierten Widget-Plugins verwendet.

Siehe auch pluginPaths().

QList<QDesignerCustomWidgetInterface *> QFormBuilder::customWidgets() const

Gibt eine Liste der verfügbaren Plugins zurück.

QStringList QFormBuilder::pluginPaths() const

Gibt die Liste der Pfade zurück, in denen der Formularersteller nach Plugins sucht.

Siehe auch addPluginPath().

void QFormBuilder::setPluginPath(const QStringList &pluginPaths)

Setzt die Liste der Plugin-Pfade auf die durch pluginPaths angegebene Liste.

Siehe auch addPluginPath().

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