本页

创建和使用组件来Qt Widgets Designer

创建自定义小部件插件

在为Qt Widgets Designer 实现自定义小部件插件时,必须继承QDesignerCustomWidgetInterface 类,以便将自定义小部件暴露给Qt Widgets Designer 。单个自定义小部件插件应构建为独立的库。若要在同一库中包含多个自定义小部件插件,还必须继承QDesignerCustomWidgetCollectionInterface 类。

为了使您的自定义小部件插件在Qt Widgets Designer 的工作区中具备预期的行为和功能,您可以继承相关的扩展类:

QDesignerContainerExtension 类允许您向自定义的多页容器中添加页面。QDesignerTaskMenuExtension 类允许您向Qt Widgets Designer 的任务菜单中添加自定义菜单项。QDesignerMemberSheetExtension 类允许您操作小部件的成员函数,这些函数在使用Qt Widgets Designer 的信号与槽编辑模式配置连接时会显示出来。最后,QDesignerPropertySheetExtension 类允许您操作小部件的属性,这些属性会在Qt Widgets Designer 的属性编辑器中显示。

显示 <span translate=Qt Widgets Designer 组件之间关系的图示" src="images/qtdesignerextensions.png" title="显示 Qt Widgets Designer 组件之间关系的图示"/>

在Qt Widgets Designer 中,扩展只有在被调用时才会被创建。 因此,在实现扩展时,您还必须继承QExtensionFactory ,即创建一个能够生成扩展实例的类。此外,您必须让Qt Widgets Designer 的扩展管理器注册您的工厂;扩展管理器会在需要时控制扩展的构建,您可以通过QDesignerFormEditorInterface 和QExtensionManager 访问它。

有关使用扩展创建自定义小部件插件的完整示例,请参阅“任务菜单扩展”或“容器扩展”示例。

获取对Qt Widgets Designer 组件的访问权限

本节中提到的类旨在提供对Qt Widgets Designer 组件、管理器和工作区的访问,它们不应被直接实例化。

Qt Widgets Designer 由多个组件组成。它有一个操作编辑器、属性编辑器、小部件框和对象检查器,您可以在其工作区中查看这些组件。

显示 <span translate=Qt Widgets Designer 编辑器界面的屏幕截图" src="images/qtdesignerscreenshot.png" title="显示 Qt Widgets Designer 编辑器界面的屏幕截图"/>

Qt Widgets Designer 此外,Qt Widgets Designer 还包含一个在后台运行的对象;该对象包含将所有 组件集成到一个连贯应用程序中的逻辑。您可以使用QDesignerFormEditorInterface 访问该对象,以获取Qt Widgets Designer 组件的接口:

此外,您可以使用QDesignerFormEditorInterface 获取Qt Widgets Designer 的扩展管理器(QExtensionManager )和表单窗口管理器(QDesignerFormWindowManagerInterface )的接口。扩展管理器负责在需要时构建扩展,而表单窗口管理器则负责控制Qt Widgets Designer 工作区中显示的表单窗口。

一旦获得了Qt Widgets Designer 的表单窗口管理器(QDesignerFormWindowManagerInterface )的接口,您就可以访问当前显示在Qt Widgets Designer 工作区中的所有表单窗口:QDesignerFormWindowInterface 类允许您查询和操作表单窗口,并提供了访问表单窗口光标的接口。QDesignerFormWindowCursorInterface 是一个便利类,允许您查询和修改给定表单窗口的控件选择,此外还可以修改该表单中所有控件的属性。

运行时创建用户界面

QtDesigner 模块包含QFormBuilder 类,该类提供了一种机制,可基于使用Qt Widgets Designer 生成的UI文件,在运行时动态创建用户界面。此类通常用于嵌入Qt Widgets Designer 的自定义组件和应用程序。需要在运行时动态生成用户界面的独立应用程序应使用位于QtUiTools 模块中的QUiLoader 类。

有关使用QUiLoader 的完整示例,请参阅“计算器构建器(Calculator Builder)”示例。

另请参阅 《Qt Widgets Designer 手册》和 Qt UI Tools。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.