QAbstractFormBuilder Class
La classe QAbstractFormBuilder fournit une implémentation par défaut pour les classes qui créent des interfaces utilisateur au moment de l'exécution. Plus d'informations...
| En-tête : | #include <QAbstractFormBuilder> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Designer)target_link_libraries(mytarget PRIVATE Qt6::Designer) |
| qmake : | QT += designer |
| Inherited By : |
Fonctions publiques
| 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 |
Description détaillée
QAbstractFormBuilder fournit une interface standard et une implémentation par défaut pour construire des formulaires à partir de fichiers d'interface utilisateur. Elle n'est pas destinée à être instanciée directement. Utilisez la classe QFormBuilder pour créer des interfaces utilisateur à partir de fichiers d'interface utilisateur au moment 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 remplacer certains aspects du comportement du constructeur de formulaires, sous-classez QAbstractFormBuilder et réimplémentez les fonctions virtuelles correspondantes :
- load() gère la lecture des fichiers de format d'interface utilisateur à partir de périphériques QIOD arbitraires et 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 appareils QIOD arbitraires.
- workingDirectory() et setWorkingDirectory() contrôlent le répertoire dans lequel les formulaires sont conservés. Le constructeur 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 Qt Widgets Designer. Les applications autonomes qui doivent générer dynamiquement des interfaces utilisateur au moment de l'exécution utilisent la classe QUiLoader, qui se trouve dans le module Qt UI Tools dans le module
Voir aussi Qt UI Tools.
Documentation des fonctions membres
QAbstractFormBuilder::QAbstractFormBuilder()
Construit un nouveau générateur de formulaires.
[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()
Détruit le constructeur de formulaires.
QString QAbstractFormBuilder::errorString() const
Renvoie une description lisible par l'homme de la dernière erreur survenue dans load().
Voir aussi load().
[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)
Charge une représentation XML d'un widget à partir de l'adresse device, et construit un nouveau widget avec l'adresse parent spécifiée.
Voir aussi save() et errorString().
[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)
Enregistre une représentation XML de l'adresse widget donnée dans l'adresse device spécifiée, dans le format de fichier standard de l'interface utilisateur.
Remarque : contrairement à l'enregistrement d'un formulaire dans Qt Widgets Designer, toutes les valeurs des propriétés sont écrites. En effet, l'état d'une valeur de propriété modifiée ou non n'est pas stocké dans le système de propriétés de Qt. Le widget qui est sauvegardé peut avoir été créé dynamiquement, et non pas chargé via load(), donc dans ce cas le constructeur de formulaire n'est pas au courant de la liste des propriétés modifiées. De plus, il n'existe pas de moyen générique de faire cela pour les widgets qui ont été créés dynamiquement.
Par conséquent, vous devriez supprimer les propriétés qui ne sont pas nécessaires de vos fichiers XML résultants, avant de les charger. Par ailleurs, si vous savez déjà quelles propriétés vous souhaitez enregistrer lorsque vous appelez cette méthode, vous pouvez surcharger computeProperties() et renvoyer une liste filtrée des propriétés requises. Dans le cas contraire, un comportement inattendu peut 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 constructeur de formulaires à l'adresse directory.
Voir aussi workingDirectory().
QDir QAbstractFormBuilder::workingDirectory() const
Renvoie le répertoire de travail actuel du constructeur de formulaires.
Voir aussi setWorkingDirectory().
© 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.