Spec-Zone.ru › Qt 6.0

Класс QAbstractFormBuilder

Класс QAbstractFormBuilder предоставляет реализацию по умолчанию для классов, которые создают пользовательские интерфейсы во время выполнения. Подробнее...

Заголовок: #include <QAbstractFormBuilder>
CMake: find_package(Qt6 COMPONENTS Designer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
Наследуется от:

QFormBuilder

  • Список всех членов, включая унаследованные

Открытые функции

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.0/qabstractformbuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API