【翻译】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)

相关推荐
神仙别闹4 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
伞伞悦读4 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
2601_966949657 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_734571767 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
RAN11426760089 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .9 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^1382879887210 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒10 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)11 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_9336707911 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言