Sur cette page

QAbstractFormBuilder Class

La classe `QAbstractFormBuilder` fournit une implémentation par défaut pour les classes qui créent des interfaces utilisateur lors de l'exécution. En savoir plus...

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

QFormBuilder

Fonctions publiques

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

Description détaillée

QAbstractFormBuilder fournit une interface standard et une implémentation par défaut pour la construction de formulaires à partir de fichiers d’interface utilisateur. Il n’est pas destiné à être instancié directement. Utilisez la classe QFormBuilder pour créer des interfaces utilisateur à partir de fichiers d’interface utilisateur lors de l’exécution. Par exemple :

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

Pour redéfinir certains aspects du comportement du générateur de formulaires, créez une sous-classe de QAbstractFormBuilder et réimplémentez les fonctions virtuelles concernées :

  • load() gère la lecture de fichiers au format UI à partir de QIODevices arbitraires, ainsi que la construction de widgets à partir des données XML qu’ils contiennent.
  • save() gère l’enregistrement des détails des widgets au format UI sur des périphériques QIODevice arbitraires.
  • workingDirectory() et setWorkingDirectory() contrôlent le répertoire dans lequel les formulaires sont stockés. Le générateur de formulaires recherche d’autres ressources sur des chemins relatifs à ce répertoire.

La classe QFormBuilder est généralement utilisée par les composants personnalisés et les applications qui intègrent le Concepteur d’ Qt Widgets. Les applications autonomes qui doivent générer dynamiquement des interfaces utilisateur lors de l’exécution utilisent le module QUiLoader, disponible dans le Qt UI Tools module.

Voir également Qt UI Tools.

Documentation sur les fonctions membres

QAbstractFormBuilder::QAbstractFormBuilder()

Crée un nouveau générateur de formulaires.

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

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

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

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

[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

Supprime le générateur de formulaires.

QString QAbstractFormBuilder::errorString() const

Renvoie une description lisible par l'utilisateur de la dernière erreur survenue dans la fonction ` load()`.

Voir également load().

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

Charge une représentation XML d'un widget à partir de l'device fournie, puis crée un nouveau widget à partir de l'parent spécifiée.

Voir également save() et errorString().

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

Enregistre une représentation XML de l'widget donné à l'device spécifiée, au format de fichier d'interface utilisateur standard.

Remarque : contrairement à l'enregistrement d'un formulaire dans Qt Widgets Designer, toutes les valeurs de propriété sont écrites. En effet, le système de propriétés Qt ne conserve pas d'information indiquant si la valeur d'une propriété a été modifiée ou non. Le widget en cours d'enregistrement peut avoir été créé dynamiquement, et non chargé via load(), de sorte que, dans ce cas, le générateur de formulaires ne dispose pas de la liste des propriétés modifiées. De plus, il n’existe pas de méthode générique pour effectuer cette opération sur des widgets créés dynamiquement.

Par conséquent, vous devez supprimer les propriétés non requises de vos fichiers XML résultants avant de les charger. Sinon, si vous savez déjà quelles propriétés vous souhaitez enregistrer lorsque vous appelez cette méthode, vous pouvez surcharger la méthode ` computeProperties() ` et renvoyer une liste filtrée des propriétés requises. Dans le cas contraire, un comportement inattendu pourrait se produire, car certaines de ces propriétés peuvent dépendre les unes des autres.

Voir également load().

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

Définit le répertoire de travail actuel du générateur de formulaires sur l'directory spécifiée.

Voir aussi workingDirectory().

QDir QAbstractFormBuilder::workingDirectory() const

Renvoie le répertoire de travail actuel du générateur de formulaires.

Voir aussi setWorkingDirectory().

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

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

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

Copie et attribue « other » à cette instance « QAbstractFormBuilder ». 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.