Класс QAbstractFormBuilder
Класс QAbstractFormBuilder предоставляет реализацию по умолчанию для классов, создающих пользовательские интерфейсы во время выполнения. Подробнее...
| Заголовок: | #include <QAbstractFormBuilder> |
| CMake: | find_package(Qt6 COMPONENTS Designer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Designer) |
| qmake: | QT += designer |
| Наследуется от: |
Открытые функции
| 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 |
Защищенные типы
| DomPropertyHash | |
| IconPaths |
Подробное описание
QAbstractFormBuilder предоставляет стандартный интерфейс и реализацию по умолчанию для построения форм из файлов пользовательского интерфейса. Он не предназначен для непосредственного создания экземпляров. Используйте класс QFormBuilder для создания пользовательских интерфейсов из файлов UI во время выполнения. Например:
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();
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(myWidget);
setLayout(layout);
} Чтобы переопределить определённые аспекты поведения создателя формы, подклассируйте QAbstractFormBuilder и переопределите соответствующие виртуальные функции:
- load() обрабатывает чтение файлов формата UI из произвольных QIODevice и построение виджетов из XML-данных, которые они содержат.
- save() обрабатывает сохранение деталей виджетов в формате UI в произвольные QIODevice.
- workingDirectory() и setWorkingDirectory() управляют каталогом, в котором хранятся формы. Формальный создатель ищет другие ресурсы по путям, относящимся к этому каталогу.
Класс QFormBuilder обычно используется пользовательскими компонентами и приложениями, которые встраивают Qt Designer. Самостоятельные приложения, которым необходимо динамически генерировать пользовательские интерфейсы во время выполнения, используют QUiLoader, находящийся в модуле Qt UI Tools.
См. также Qt UI Tools.
Документация по членам-функциям
QAbstractFormBuilder::QAbstractFormBuilder()
Создаёт новый создатель форм.
[virtual] QAbstractFormBuilder::~QAbstractFormBuilder()
Уничтожает создатель форм.
[since 5.0] QString QAbstractFormBuilder::errorString() const
Возвращает удобочитаемое описание последней ошибки, произошедшей в load().
Эта функция была введена в Qt 5.0.
См. также load().
[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)
Загружает XML-представление виджета из указанного device и строит новый виджет с указанным parent.
См. также save() и errorString().
[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)
Сохраняет XML-представление указанного widget в заданный device в стандартном формате файла UI.
Примечание: В отличие от сохранения формы в Qt Designer, все значения свойств записываются. Это происходит потому, что состояние того, было ли значение свойства изменено или нет, не сохраняется в системе свойств Qt. Виджет, который сохраняется, мог быть создан динамически, а не загружен через load(), поэтому в этом случае создатель форм не знает список изменённых свойств. Кроме того, нет универсального способа сделать это для виджетов, созданных динамически.
Поэтому вы должны удалить свойства, которые не требуются, из полученных XML-файлов перед их загрузкой. Или, если вы уже знаете, какие свойства вы хотите сохранить, когда вы вызываете этот метод, вы можете переопределить computeProperties() и вернуть отфильтрованный список необходимых свойств. В противном случае могут возникнуть неожиданные результаты, так как некоторые из этих свойств могут зависеть друг от друга.
См. также load().
void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)
Устанавливает текущий рабочий каталог создателя форм в указанный directory.
См. также workingDirectory().
QDir QAbstractFormBuilder::workingDirectory() const
Возвращает текущий рабочий каталог создателя форм.
См. также setWorkingDirectory().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qabstractformbuilder.html