class QAbstractFormBuilder#

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

继承自: QFormBuilder

摘要#

方法#

虚方法#

静态函数#

注意

本文档可能包含来自 C++ 到 Python 的自动翻译片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式让我们知道

详细描述#

警告

本节包含来自 C++ 到 Python 的自动翻译片段,可能包含错误。

QAbstractFormBuilder 为从用户界面文件构建表单提供了一个标准接口和默认实现。它不被设计为直接实例化。使用 QFormBuilder 类在运行时从 UI 文件创建用户界面。例如

    MyForm::MyForm(QWidget parent)
super().__init__(parent)

        builder = QFormBuilder()
        file = QFile(":/forms/myWidget.ui")
        file.open(QFile.ReadOnly)
        myWidget = builder.load(file, self)
        file.close()
        layout = QVBoxLayout(self)
        layout.addWidget(myWidget)

要覆盖表单构建器行为的某些方面,可以继承 QAbstractFormBuilder 并重写相关的虚拟函数

  • load() 处理从任意 QIODevices 读取 UI 格式文件,并从包含的 XML 数据构建小部件。

  • save() 负责将小部件详细信息以 UI 格式保存到任意的 QIO 设备中。

  • workingDirectory()setWorkingDirectory() 控制表单存放的目录。表单构建器会在这个目录的相对路径中查找其他资源。

QFormBuilder 类通常由自定义组件和嵌入 Qt Designer 的应用程序使用。需要运行时动态生成用户界面的独立应用程序可以使用 Qt UI Tools 模块中的 QUiLoader。

另请参阅

Qt UI Tools

__init__()#

构建一个新表单构建器。

addMenuAction(action)#
参数

action - QAction

applyPropertyInternally(o, propertyName, value)#
参数
  • o - QObject

  • propertyName - 字符串

  • value - 对象

返回类型

布尔值

checkProperty(obj, prop)#
参数
返回类型

布尔值

createAction(parent, name)#
参数
  • parent - QObject

  • name - 字符串

返回类型

QAction

createActionGroup(parent, name)#
参数
  • parent - QObject

  • name - 字符串

返回类型

QActionGroup

createLayout(layoutName, parent, name)#
参数
  • layoutName – str

  • parent - QObject

  • name - 字符串

返回类型

QLayout

createWidget(widgetName, parentWidget, name)#
参数
  • widgetName – str

  • parentWidgetQWidget

  • name - 字符串

返回类型

QWidget

errorString()#
返回类型

str

返回load()方法中发生的最后一个错误的易读描述。

另请参阅

load()

load(dev[, parentWidget=None])#
参数
返回类型

QWidget

从给定的device加载小部件的XML表示,并使用指定的parent构造一个新的小部件。

另请参阅

save() errorString()

reset()#
save(dev, widget)#
参数

以标准的UI文件格式将指定小部件的XML表示保存到指定的device

注意

与在Qt Designer中保存表单不同,这里会写入所有属性值。这是因为,属性值是否被修改的状态并没有存储在Qt属性系统中。正在保存的小部件可能是在动态创建的,而不是通过load()加载的,所以在这种情况下,表单构建器不熟悉已更改属性列表。同样,对于动态创建的控件也没有通用的实现方式。

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

另请参阅

load()

setWorkingDirectory(directory)#
参数

directoryQDir

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

另请参阅

workingDirectory()

static toolBarAreaMetaEnum()#
返回类型

QMetaEnum

workingDirectory()#
返回类型

QDir

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

另请参阅

setWorkingDirectory()