Класс QAbstractFormBuilder
Класс QAbstractFormBuilder предоставляет реализацию по умолчанию для классов, которые создают пользовательские интерфейсы во время выполнения. Подробнее...
| Заголовок: | #include <QAbstractFormBuilder> |
| 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 |
Защищенные типы
| (alias) | DomPropertyHash |
| (alias) | 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()
Удаляет генератор форм.
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-5.15/qabstractformbuilder.html