在Qt Widgets Designer
Qt Widgets Designer 可通过其可扩展的插件机制显示自定义小部件,允许用户和第三方扩展可设计的小部件范围。此外,还可以将现有小部件用作提供类似 API 的小部件类的占位符。
处理自定义控件
尽管Qt Widgets Designer 支持所有标准的Qt Widgets,但出于多种原因,某些专用控件可能无法作为标准控件提供:
- 在设计用户界面时,可能尚无自定义控件可用。
- 自定义控件可能是平台特有的,而设计师可能在与最终用户不同的平台上开发用户界面。
- 自定义控件的源代码不可用,或者用户界面设计师因非技术原因无法使用该控件。
在上述情况下,仍可设计旨在在应用程序中使用自定义控件的表单。为此,我们可以利用Qt Widgets Designer 的控件提升功能。
在所有其他情况下,如果自定义控件的源代码可用,我们可以对自定义控件进行调整,以便与Qt Widgets Designer 配合使用。
控件提升

如果必须设计某些表单,但设计人员无法使用特定的自定义控件,我们可以使用类似的控件来替代缺失的控件。例如,我们可以使用 `QPushButton ` 的实例来表示自定义按钮类 `MyPushButton` 的实例,并将这些实例提升为 `MyPushButton `,这样uic就能为这个缺失的类生成合适的代码。
在选择用作占位符的控件时,将缺失控件的 API 与标准 Qt Widgets 的 API 进行比较会很有帮助。对于继承自标准类的特化控件,最显而易见的占位符选择是该自定义控件的基类;例如,QSlider 可用于QSlider 的特化子类。
对于与标准 Qt Widgets 没有共同 API 的特化控件,值得考虑调整自定义控件以供Qt Widgets Designer 使用。如果无法实现,那么QWidget 显然是占位控件的最佳选择,因为它是所有控件的最低公约数。
要添加占位符,请选择一个合适的基类对象,然后从表单的上下文菜单中选择“提升为...”。在对话框下部输入类名和头文件后,选择“添加”。此时,占位符类将与基类一同出现在上方的列表中。 点击“提升”按钮以确认此选择。
现在,当在基类对象上打开表单的上下文菜单时,占位符类将出现在“提升至”子菜单中,从而可以方便地将对象提升到该类。
若要将已提升的小部件恢复为基类,可从表单的右键菜单中选择“降级为”。
用户定义的自定义控件
自定义控件可以适配Qt Widgets Designer ,这使设计师能够使用应用程序中实际将要使用的控件(而非占位符控件)来配置用户界面。本手册的“为Qt Widgets Designer 创建自定义控件”一章中描述了创建自定义控件插件的过程。
要使用以此方式创建的插件,必须确保该插件位于Qt Widgets Designer 搜索插件的路径上。通常,存储在$QTDIR/plugins/designer 中的插件会在Qt Widgets Designer 启动时被加载。有关构建和安装插件的更多信息,请参见此处。您还可以参考《插件操作指南》(Plugins HOWTO)文档,了解有关创建插件的信息。
© 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.