QAbstractFormBuilder Class
La clase QAbstractFormBuilder proporciona una implementación por defecto para las clases que crean interfaces de usuario en tiempo de ejecución. Más...
| Cabecera: | #include <QAbstractFormBuilder> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Designer)target_link_libraries(mytarget PRIVATE Qt6::Designer) |
| qmake: | QT += designer |
| Heredado Por: |
Funciones Públicas
| 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 |
Descripción Detallada
QAbstractFormBuilder proporciona una interfaz estándar y una implementación por defecto para construir formularios a partir de archivos de interfaz de usuario. No está pensado para ser instanciado directamente. Utilice la clase QFormBuilder para crear interfaces de usuario a partir de archivos de interfaz de usuario en tiempo de ejecución. Por ejemplo:
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); }
Para sobreescribir ciertos aspectos del comportamiento del constructor de formularios, subclase QAbstractFormBuilder y reimplementar las funciones virtuales relevantes:
- load() maneja la lectura de archivos de formato UI desde QIODevices arbitrarios, y la construcción de widgets a partir de los datos XML que contienen.
- save() se encarga de guardar los detalles del widget en formato UI en QIODevices arbitrarios.
- workingDirectory() y setWorkingDirectory() controlan el directorio en el que se guardan los formularios. El constructor de formularios busca otros recursos en rutas relativas a este directorio.
La clase QFormBuilder es típicamente usada por componentes personalizados y aplicaciones que incrustan Qt Widgets Designer. Las aplicaciones independientes que necesitan generar dinámicamente interfaces de usuario en tiempo de ejecución utilizan la clase QUiLoader, que se encuentra en el módulo Qt UI Tools que se encuentra en el módulo
Véase también Qt UI Tools.
Documentación de funciones miembro
QAbstractFormBuilder::QAbstractFormBuilder()
Construye un nuevo constructor de formularios.
[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()
Destruye el constructor de formularios.
QString QAbstractFormBuilder::errorString() const
Devuelve una descripción legible por humanos del último error ocurrido en load().
Véase también load().
[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)
Carga una representación XML de un widget desde la dirección device, y construye un nuevo widget con la dirección parent especificada.
Véase también save() y errorString().
[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)
Guarda una representación XML del widget dado en el device especificado en el formato de archivo UI estándar.
Nota: A diferencia de cuando se guarda un formulario en Qt Widgets Designer, se escriben todos los valores de las propiedades. Esto se debe a que, el estado de si un valor de propiedad fue modificado o no, no se almacena en el sistema de propiedades de Qt. El widget que se está guardando, podría haber sido creado dinámicamente, no cargado a través de load(), por lo que en este caso el constructor de formularios no es consciente de la lista de propiedades modificadas. Además, no hay una forma genérica de hacer esto para widgets que fueron creados dinámicamente.
Por lo tanto, debería eliminar las propiedades que no sean necesarias de sus archivos XML resultantes, antes de cargarlos. Alternativamente, si ya sabes qué propiedades quieres guardar cuando llames a este método, puedes sobrecargar computeProperties() y devolver una lista filtrada de propiedades requeridas. De lo contrario, puede producirse un comportamiento inesperado, ya que algunas de estas propiedades pueden depender unas de otras.
Véase también load().
void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)
Establece el directorio de trabajo actual del constructor de formularios en el directory especificado.
Véase también workingDirectory().
QDir QAbstractFormBuilder::workingDirectory() const
Devuelve el directorio de trabajo actual del constructor de formularios.
Véase también 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.