Auf dieser Seite

QAbstractFormBuilder Class

Die Klasse „QAbstractFormBuilder“ bietet eine Standardimplementierung für Klassen, die Benutzeroberflächen zur Laufzeit erstellen. Mehr...

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

QFormBuilder

Öffentliche Funktionen

QAbstractFormBuilder()
QAbstractFormBuilder(const QAbstractFormBuilder &)
QAbstractFormBuilder(QAbstractFormBuilder &&)
virtual ~QAbstractFormBuilder()
QString errorString() const
virtual QWidget *load(QIODevice *device, QWidget *parent = nullptr)
virtual void save(QIODevice *device, QWidget *widget)
void setWorkingDirectory(const QDir &directory)
QDir workingDirectory() const
QAbstractFormBuilder &operator=(QAbstractFormBuilder &&)
QAbstractFormBuilder &operator=(const QAbstractFormBuilder &)

Ausführliche Beschreibung

QAbstractFormBuilder bietet eine Standardschnittstelle und eine Standardimplementierung zum Erstellen von Formularen aus Benutzeroberflächendateien. Es ist nicht dafür vorgesehen, direkt instanziiert zu werden. Verwenden Sie die Klasse „ QFormBuilder “, um Benutzeroberflächen zur Laufzeit aus UI-Dateien zu erstellen. 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);
        }

Um bestimmte Aspekte des Verhaltens des Formular-Builders zu überschreiben, erstellen Sie eine Unterklasse von `QAbstractFormBuilder` und implementieren Sie die entsprechenden virtuellen Funktionen neu:

  • load() übernimmt das Einlesen von Dateien im UI-Format aus beliebigen QIODevices sowie das Erstellen von Widgets aus den darin enthaltenen XML-Daten.
  • save() übernimmt das Speichern von Widget-Details im UI-Format auf beliebigen QIODevices.
  • workingDirectory() und setWorkingDirectory() steuern das Verzeichnis, in dem die Formulare gespeichert sind. Der Formular-Generator sucht nach weiteren Ressourcen auf Pfaden, die relativ zu diesem Verzeichnis liegen.

Die Klasse ` QFormBuilder ` wird typischerweise von benutzerdefinierten Komponenten und Anwendungen verwendet, die den „ Qt Widgets Designer“ einbetten. Eigenständige Anwendungen, die Benutzeroberflächen zur Laufzeit dynamisch generieren müssen, verwenden das ` QUiLoader`, das sich im Qt UI Tools Modul.

Siehe auch Qt UI Tools.

Dokumentation zu den Member-Funktionen

QAbstractFormBuilder::QAbstractFormBuilder()

Erstellt einen neuen Formular-Generator.

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

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

[delete] QAbstractFormBuilder::QAbstractFormBuilder(QAbstractFormBuilder &&)

Erstellt eine Instanz von ` QAbstractFormBuilder`. Diese Funktion wurde gelöscht.

[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

Löscht den Formular-Generator.

QString QAbstractFormBuilder::errorString() const

Gibt eine für Menschen lesbare Beschreibung des letzten Fehlers zurück, der in load() aufgetreten ist.

Siehe auch load().

[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)

Lädt eine XML-Darstellung eines Widgets aus der angegebenen URL device und erstellt ein neues Widget mit den angegebenen Eigenschaften parent.

Siehe auch save() und errorString().

[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)

Speichert eine XML-Darstellung des angegebenen „ widget “ unter dem angegebenen „ device “ im Standard-UI-Dateiformat.

Hinweis: Anders als beim Speichern eines Formulars im „ Qt Widgets “ Qt Designer werden alle Eigenschaftswerte geschrieben. Der Grund dafür ist, dass im Qt-Eigenschaftssystem nicht gespeichert wird, ob ein Eigenschaftswert geändert wurde oder nicht. Das Widget, das gespeichert wird, könnte dynamisch erstellt und nicht über ` load()` geladen worden sein; in diesem Fall kennt der Formular-Builder die Liste der geänderten Eigenschaften nicht. Außerdem gibt es keine generische Möglichkeit, dies für dynamisch erstellte Widgets zu bewerkstelligen.

Daher sollten Sie nicht benötigte Eigenschaften aus Ihren resultierenden XML-Dateien entfernen, bevor Sie diese laden. Alternativ können Sie, falls Sie beim Aufruf dieser Methode bereits wissen, welche Eigenschaften Sie speichern möchten, die Methode ` computeProperties() ` überladen und eine gefilterte Liste der erforderlichen Eigenschaften zurückgeben. Andernfalls kann es zu unerwartetem Verhalten kommen, da einige dieser Eigenschaften möglicherweise voneinander abhängig sind.

Siehe auch ` load()`.

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

Legt das aktuelle Arbeitsverzeichnis des Formular-Generators auf die angegebene Adresse directory fest.

Siehe auch workingDirectory().

QDir QAbstractFormBuilder::workingDirectory() const

Gibt das aktuelle Arbeitsverzeichnis des Formular-Generators zurück.

Siehe auch ` setWorkingDirectory()`.

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

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

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

other Weist der Instanz „ QAbstractFormBuilder “ den Wert „ “ 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.