QUiLoader Class
La clase QUiLoader permite a las aplicaciones autónomas crear dinámicamente interfaces de usuario en tiempo de ejecución utilizando la información almacenada en archivos de interfaz de usuario o especificada en rutas de plugins. Más...
| Cabecera: | #include <QUiLoader> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS UiTools)target_link_libraries(mytarget PRIVATE Qt6::UiTools) |
| qmake: | QT += uitools |
| Hereda: | QObject |
Funciones públicas
| QUiLoader(QObject *parent = nullptr) | |
| virtual | ~QUiLoader() override |
| void | addPluginPath(const QString &path) |
| QStringList | availableLayouts() const |
| QStringList | availableWidgets() const |
| void | clearPluginPaths() |
| virtual QAction * | createAction(QObject *parent = nullptr, const QString &name = QString()) |
| virtual QActionGroup * | createActionGroup(QObject *parent = nullptr, const QString &name = QString()) |
| virtual QLayout * | createLayout(const QString &className, QObject *parent = nullptr, const QString &name = QString()) |
| virtual QWidget * | createWidget(const QString &className, QWidget *parent = nullptr, const QString &name = QString()) |
| QString | errorString() const |
| bool | isLanguageChangeEnabled() const |
| QWidget * | load(QIODevice *device, QWidget *parentWidget = nullptr) |
| QStringList | pluginPaths() const |
| void | setLanguageChangeEnabled(bool enabled) |
| void | setWorkingDirectory(const QDir &dir) |
| QDir | workingDirectory() const |
Descripción detallada
Además, puede personalizar o crear su propia interfaz de usuario derivando su propia clase de cargador.
Si tiene un componente personalizado o una aplicación que incorpora Qt Widgets Designer, también puede utilizar la clase QFormBuilder proporcionada por el módulo QtDesigner para crear interfaces de usuario a partir de archivos de interfaz de usuario.
La clase QUiLoader proporciona una colección de funciones que permiten crear widgets basados en la información almacenada en archivos UI (creados con Qt Widgets Designer) o disponibles en las rutas de plugins especificadas. Las rutas de plugins especificadas pueden recuperarse utilizando la función pluginPaths(). Del mismo modo, el contenido de un archivo de interfaz de usuario puede recuperarse mediante la función load(). Por ejemplo:
MyWidget::MyWidget(QWidget *parent) : QWidget(padre) { QFile file(":/forms/myform.ui"); if (!file.open(QFile::Sólo lectura)) qFatal("Cannot open resource file"); QUiLoader loader; QWidget *myWidget = loader.load(&file, this); QVBoxLayout *layout = nuevo QVBoxLayoutlayout->addWidget(myWidget); setLayout(layout); }
Al incluir la interfaz de usuario en los recursos del formulario (myform.qrc), nos aseguramos de que estará presente en tiempo de ejecución:
<!DOCTYPE RCC><RCC version="1.0"> <qresource prefix="/forms"> <file>myform.ui</file> </qresource> </RCC>
La función availableWidgets() devuelve un QStringList con los nombres de clase de los widgets disponibles en las rutas de plugin especificadas. Para crear estos widgets, basta con utilizar la función createWidget(). Por ejemplo:
QWidget *loadCustomWidget(const QString&className, QWidget *parent) { QUiLoader cargador; QStringList availableWidgets = loader.availableWidgets(); if (!availableWidgets.contains(className)) { qWarning() << "Cannot create widget" << className; return nullptr; } return loader.createWidget(className, parent); }
Para poner un widget personalizado a disposición del cargador, puede utilizar la función addPluginPath(); para eliminar todos los widgets disponibles, puede llamar a la función clearPluginPaths().
Las funciones createAction(), createActionGroup(), createLayout() y createWidget() son utilizadas internamente por la clase QUiLoader cada vez que tiene que crear una acción, grupo de acciones, diseño o widget respectivamente. Por ello, puedes subclasificar la clase QUiLoader y reimplementar estas funciones para intervenir en el proceso de construcción de una interfaz de usuario. Por ejemplo, puedes querer tener una lista de las acciones creadas al cargar un formulario o al crear un widget personalizado.
Para ver un ejemplo completo utilizando la clase QUiLoader, consulte Calculator Builder.
Véase también Qt UI Tools y QFormBuilder.
Documentación de las funciones miembro
[explicit] QUiLoader::QUiLoader(QObject *parent = nullptr)
Crea un cargador de formularios con la dirección parent.
[override virtual noexcept] QUiLoader::~QUiLoader()
Destruye el cargador.
void QUiLoader::addPluginPath(const QString &path)
Añade el path dado a la lista de rutas en las que el cargador buscará al localizar plugins.
Véase también pluginPaths() y clearPluginPaths().
QStringList QUiLoader::availableLayouts() const
Devuelve una lista con todos los diseños disponibles que se pueden crear con la función createLayout().
Véase también createLayout().
QStringList QUiLoader::availableWidgets() const
Devuelve una lista con todos los widgets disponibles que se pueden crear con la función createWidget(), es decir, todos los widgets especificados en las rutas de plugins dadas.
Véase también pluginPaths() y createWidget().
void QUiLoader::clearPluginPaths()
Borra la lista de rutas en las que el cargador buscará al localizar plugins.
Véase también addPluginPath() y pluginPaths().
[virtual] QAction *QUiLoader::createAction(QObject *parent = nullptr, const QString &name = QString())
Crea una nueva acción con los datos parent y name.
La función también es utilizada internamente por la clase QUiLoader cada vez que crea un widget. Por lo tanto, puedes subclasificar QUiLoader y reimplementar esta función para intervenir en el proceso de construcción de una interfaz de usuario o widget. Sin embargo, en su implementación, asegúrese de llamar primero a la versión de QUiLoader.
Véase también createActionGroup(), createWidget(), y load().
[virtual] QActionGroup *QUiLoader::createActionGroup(QObject *parent = nullptr, const QString &name = QString())
Crea un nuevo grupo de acciones con los datos parent y name.
La función también es utilizada internamente por la clase QUiLoader cada vez que crea un widget. Por lo tanto, puedes subclasificar QUiLoader y reimplementar esta función para intervenir en el proceso de construcción de una interfaz de usuario o widget. Sin embargo, en su implementación, asegúrese de llamar primero a la versión de QUiLoader.
Véase también createAction(), createWidget(), y load().
[virtual] QLayout *QUiLoader::createLayout(const QString &className, QObject *parent = nullptr, const QString &name = QString())
Crea un nuevo diseño con los datos parent y name utilizando la clase especificada por className.
La función también es utilizada internamente por la clase QUiLoader cada vez que crea un widget. Por lo tanto, puedes subclasificar QUiLoader y reimplementar esta función para intervenir en el proceso de construcción de una interfaz de usuario o widget. Sin embargo, en su implementación, asegúrese de llamar primero a la versión de QUiLoader.
Véase también createWidget() y load().
[virtual] QWidget *QUiLoader::createWidget(const QString &className, QWidget *parent = nullptr, const QString &name = QString())
Crea un nuevo widget con los datos parent y name utilizando la clase especificada por className. Puede utilizar esta función para crear cualquiera de los widgets devueltos por la función availableWidgets().
La función también es utilizada internamente por la clase QUiLoader cada vez que crea un widget. Por lo tanto, puedes subclasificar QUiLoader y reimplementar esta función para intervenir en el proceso de construcción de una interfaz de usuario o widget. Sin embargo, en su implementación, asegúrese de llamar primero a la versión de QUiLoader.
Véase también availableWidgets() y load().
QString QUiLoader::errorString() const
Devuelve una descripción legible por humanos del último error ocurrido en load().
Véase también load().
bool QUiLoader::isLanguageChangeEnabled() const
Devuelve true si la retraducción dinámica al cambiar de idioma está activada; devuelve false en caso contrario.
Véase también setLanguageChangeEnabled().
QWidget *QUiLoader::load(QIODevice *device, QWidget *parentWidget = nullptr)
Carga un formulario desde device y crea un nuevo widget con parentWidget para guardar su contenido.
Véase también createWidget() y errorString().
QStringList QUiLoader::pluginPaths() const
Devuelve una lista que nombra las rutas en las que el cargador buscará cuando localice plugins de widgets personalizados.
Véase también addPluginPath() y clearPluginPaths().
void QUiLoader::setLanguageChangeEnabled(bool enabled)
Si enabled es verdadero, las interfaces de usuario cargadas por este cargador se retraducirán automáticamente al recibir un evento de cambio de idioma. En caso contrario, las interfaces de usuario no se retraducirán.
Véase también isLanguageChangeEnabled().
void QUiLoader::setWorkingDirectory(const QDir &dir)
Establece el directorio de trabajo del cargador en dir. El cargador buscará otros recursos, como iconos y archivos de recursos, en rutas relativas a este directorio.
Véase también workingDirectory().
QDir QUiLoader::workingDirectory() const
Devuelve el directorio de trabajo del cargador.
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.