QAbstractFormBuilder 类
QAbstractFormBuilder 类提供了在运行时创建用户界面类的默认实现。更多...
头文件 | #include <QAbstractFormBuilder> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Designer) 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(); 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 公司的商标。所有其他商标均为其各自所有者的财产。