Класс 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 |
Подробное описание
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.2/qabstractformbuilder.html