QAbstractFormBuilder 类

QAbstractFormBuilder 类提供了在运行时创建用户界面类的默认实现。更多...

头文件 #include <QAbstractFormBuilder>
CMakefind_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmakeQT += designer
继承自

QFormBuilder

公共函数

QAbstractFormBuilder()
virtual~QAbstractFormBuilder()
QStringerrorString() const
virtual QWidget *load(QIODevice *device, QWidget *parent = nullptr)
virtual voidsave(QIODevice *device, QWidget *widget)
voidsetWorkingDirectory(const QDir &directory)
QDirworkingDirectory() 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();

            auto *layout = new QVBoxLayout(this);
            layout->addWidget(myWidget);
        }

要覆盖表单构建器行为的某些方面,从 QAbstractFormBuilder 派生并重新实现相关虚函数

  • load() 处理从任意 QIODevices 读取 UI 格式文件和从包含它们的 XML 数据构建小部件。
  • save() 处理将小部件细节以 UI 格式保存到任意 QIODevices。
  • workingDirectory() 和 setWorkingDirectory() 控制保存表单的目录。表单构建器在其他路径上查找该目录的资源。

通常使用 QFormBuilder 类来构建使用 Qt Designer 的自定义组件和应用程序。需要动态在运行时生成用户界面的独立应用程序使用在 Qt UI Tools 模块中找到的 QUiLoader

另请参阅 Qt UI Tools

成员函数说明

QAbstractFormBuilder::QAbstractFormBuilder()

构建一个新的表单构建器。

[虚函数 noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

销毁表单构建器。

QString QAbstractFormBuilder::errorString() const

返回对在 load() 中发生的最后错误的友好描述。

另请参阅 load()。

[虚] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)

从指定的 device 加载小部件的 XML 表示形式,并构建一个新的具有指定 parent 的小部件。

另请参阅 save() 以及 errorString()。

[虚] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)

将指定的小部件的 XML 表示形式保存到指定的 device,并使用标准化 UI 文件格式。

注意: 与在 Qt Designer 中保存表单不同,将所有属性值都写入。这是因为,属性值是否已修改的状态并未存储在 Qt 属性系统中。所保存的小部件可能是在动态创建,而不是通过 load() 加载的,因此在这种情况下,表单构建器不了解已更改的属性列表。此外,对于动态创建的小部件,也没有通用的方法来做这件事。

因此,在加载之前,您应该从生成的 XML 文件中删除不再需要的属性。或者,如果您在调用此方法时已经知道要保存哪些属性,您可以通过重载 computeProperties() 返回所需属性列表的过滤列表。否则,可能会出现意外的行为,因为这些属性中的一些可能依赖于其他属性。

另请参阅 load()。

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

将表单构建器的当前工作目录设置为指定的 directory

另请参阅 workingDirectory()。

QDir QAbstractFormBuilder::workingDirectory() const

返回表单构建器的当前工作目录。

另请参阅 setWorkingDirectory()。

© 2024 Qt 公司。包含在本内的文档贡献的版权属于各自的所有者。本提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款授权的。Qt 及相关标志是芬兰和/或其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。