QAbstractFormBuilder Class

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

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

QFormBuilder

Öffentliche Funktionen

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

Detaillierte Beschreibung

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

Um bestimmte Aspekte des Verhaltens des Form Builders zu überschreiben, subclass QAbstractFormBuilder und reimplementieren Sie die relevanten virtuellen Funktionen:

  • load() behandelt das Lesen von UI-Format-Dateien von beliebigen QIODevices und die Konstruktion von Widgets aus den darin enthaltenen XML-Daten.
  • save() behandelt das Speichern von Widget-Details im UI-Format auf beliebigen QIODevices.
  • workingDirectory() und setWorkingDirectory() steuern das Verzeichnis, in dem Formulare gespeichert werden. Der Formularersteller sucht nach anderen Ressourcen auf Pfaden relativ zu diesem Verzeichnis.

Die Klasse QFormBuilder wird normalerweise von benutzerdefinierten Komponenten und Anwendungen verwendet, die Qt Widgets Designer einbetten. Eigenständige Anwendungen, die dynamisch Benutzeroberflächen zur Laufzeit generieren müssen, verwenden die Klasse QUiLoader, die sich im Qt UI Tools Modul zu finden ist.

Siehe auch Qt UI Tools.

Dokumentation der Mitgliedsfunktionen

QAbstractFormBuilder::QAbstractFormBuilder()

Konstruiert einen neuen Form Builder.

[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

Zerstört den Formularersteller.

QString QAbstractFormBuilder::errorString() const

Gibt eine menschenlesbare 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-Repräsentation eines Widgets aus dem angegebenen device und erstellt ein neues Widget mit dem angegebenen parent.

Siehe auch save() und errorString().

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

Speichert eine XML-Darstellung des angegebenen widget auf dem angegebenen device im Standard-UI-Dateiformat.

Hinweis: Anders als beim Speichern eines Formulars im Qt Widgets Designer werden alle Eigenschaftswerte geschrieben. Das liegt daran, dass der Status, ob ein Eigenschaftswert geändert wurde oder nicht, nicht im Qt-Eigenschaftssystem gespeichert wird. Das Widget, das gespeichert wird, könnte dynamisch erstellt und nicht über load() geladen worden sein, so dass der Formularersteller in diesem Fall keine Kenntnis von der Liste der geänderten Eigenschaften hat. Außerdem gibt es keine generische Möglichkeit, dies für Widgets zu tun, die dynamisch erstellt wurden.

Daher sollten Sie nicht benötigte Eigenschaften aus Ihren resultierenden XML-Dateien entfernen, bevor Sie sie laden. Wenn Sie bereits wissen, welche Eigenschaften Sie speichern möchten, wenn Sie diese Methode aufrufen, können Sie alternativ computeProperties() überladen und eine gefilterte Liste der erforderlichen Eigenschaften zurückgeben. Andernfalls kann es zu unerwartetem Verhalten kommen, da einige dieser Eigenschaften voneinander abhängen können.

Siehe auch load().

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

Setzt das aktuelle Arbeitsverzeichnis des Form Builders auf das angegebene directory.

Siehe auch workingDirectory().

QDir QAbstractFormBuilder::workingDirectory() const

Gibt das aktuelle Arbeitsverzeichnis des Formularerstellers zurück.

Siehe auch setWorkingDirectory().

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