【翻译】Qt Designer自定义控件简介

原文链接:Using Custom Widgets with Qt Widgets Designer

Qt Designer 可以通过其可扩展的插件机制显示自定义控件,允许用户和第三方扩展定义控件的范围。或者,也可以使用现有的控件作为提供类似 API 的控件类的占位符。

处理自定义控件

尽管 Qt Designer支持所有标准的 Qt 控件,但由于以下原因,一些特定的控件可能不能作为标准使用:

  • 用户界面处于设计模式下,自定义控件可能不可用。
  • 针对特定平台开发的自定义控件,设计器可能需要在特定平台下运行才能为终端用户开发UI界面。
  • 自定义控件的源代码不可用,或者由于非技术原因(比如license限定)也会造成一些自定义控件无法使用。

在上述情况下,依然可以达到使用自定义控件的目的。为了实现这一点,我们可以使用 Qt Designer 的提升窗口部件功能。

除此之外,若自定义控件的源代码可用,我们可以调整自定义控件以便在Qt Designer中使用。

提升窗口部件(控件)

如果必须设计某些表单,且某些自定义控件对设计器不可用,我们可以用类似的控件来替代缺失的控件。例如,我们可以用 QPushButton 的实例表示自定义按钮类 MyPushButton 的实例,并将这些实例提升到 MyPushButton,以便 uic 为这个缺失的类生成合适的代码。

当选择一个控件作为占位符时,将缺失控件的 API 与标准 Qt 控件的 API 进行比较是很有用的。基于标准控件子类的专用控件,占位符的选择基于自定义控件的基类; 例如,QSlider 可能用于专用的 QSlider 子类。

对于不与标准 Qt 控件兼容 API 的专用控件,可以考虑调整为一个自定义控件,以便在 Qt Designer中使用。如果无论如何也不可行,那么 QWidget 将是所有控件的首选。

要添加占位符,请选择一个合适的基类,然后从控件的右键菜单中选择提升为...。在对话框的下半部分输入提升的类名称头文件后,点击 添加。占位符类现在将与基类一起出现在上面的列表中。单击"提升"按钮以接受此选项。


现在,当表单中存在基类的控件,占位符类将出现在提升为子菜单中,从而可方便地将对象升级到该类。

通过从控件的右键菜单中选择取消***的提升,可以将提升的控件还原为其基类。

用户自定义控件

自定义控件可以整合到 Qt Designer中使用,使设计器在应用程序中使用真实控件而非占位符控件来配置用户界面。创建自定义控件插件的过程详见本手册的"为 Qt Designer创建自定义控件"一文。

要使用以这种方式创建的插件,需确保该插件位于 Qt Designer 可检索到的插件路径中。通常,存储在 Qt根目录/plugins/design 路径下的插件将在 Qt Designer 启动时加载。关于构建和安装插件的更多信息可以在这里找到。有关创建插件的信息,您还可以参考 Plugins HOWTO 文档。

扩展阅读

Qt Designer 最新中文手册文档(Qt6)

相关推荐
流星白龙23 分钟前
【C++习题】10.反转字符串中的单词 lll
开发语言·c++
尘浮生30 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
MessiGo31 分钟前
Python 爬虫 (1)基础 | 基础操作
开发语言·python
Tech Synapse37 分钟前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端
乌啼霜满天2491 小时前
JDBC编程---Java
java·开发语言·sql
色空大师1 小时前
23种设计模式
java·开发语言·设计模式
Bruce小鬼1 小时前
QT文件基本操作
开发语言·qt
2202_754421541 小时前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
我只会发热1 小时前
Java SE 与 Java EE:基础与进阶的探索之旅
java·开发语言·java-ee
懷淰メ2 小时前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5