自定义控件是将原有控件组合、封装,并填入自定义功能,留出适当的函数接口,方便其他控件的调用。设计窗口时,可以将控件拖入,方便模块化设计。

GitHub代码仓库:Qt学习例程

1. 建立工程、新建自定义控件

创建widget工程

新建控件:

Add New...,Qt,Qt设计师界面类。模板选择 Widget。

给自定义控件随便起一个名称。

最后就看到两个控件窗口了。

2. 布局、代码关联

将系统控件 放入到 新建的控件中。进行布局,调整大小。

将整型微调 和 水平滑块用代码关联。使水平滑块会随着微调移动,拖动水平滑块也会使微调显示框更新变化。

3. 在其他窗口中调用自定义控件

在widget窗口内,调用自定义控件:拖入 widget控件,右键 - 提升为。

将自定义控件的类名称复制下来。

粘贴到提升的类名称中,(勾选全局包含),添加,提升。

之后再想将其他控件提升为自定义控件,就可直接右键 - 提升为 - 以前勾选过全局包含的类。

可以看到,提升后的widget控件,从QWidget类,变成了自定义控件的类。

实验结果。微调数字框,水平滑块会滑动。拖动水平滑块,微调数字框中的数值也会发生变化。且上下两个自定义控件相互独立,互不干扰。

4. 预留外部接口

作为完整的自定义控件,还需要留出适当的接口,提供一些功能以供外部调用。

添加两个测试按键。

给按键添加信号槽,调用留出的外部接口,实现对应功能。

最终实验现象。

以后的代码越来越大,文件也会变多,所以完整代码就不再发博客中了。会将工程同步到GitHub,欢迎各位下载。

GitHub代码仓库:Qt学习例程

【Qt教程】2.6 - Qt5 自定义控件封装相关推荐

  1. QT教程2:QT5的体系构架

    一.列出QT5体系内容 QT5的模块有• QtCore • QtGui • QtWidgets • QtMultimedia • QtBluetooth • QtNetwork • QtPositio ...

  2. [Qt教程] 第24篇 数据库(四)SQL查询模型QSqlQueryModel

    [Qt教程] 第24篇 数据库(四)SQL查询模型QSqlQueryModel 楼主  发表于 2013-5-21 14:33:47 | 查看: 869| 回复: 1 SQL查询模型QSqlQuery ...

  3. [Qt教程] 第35篇 网络(五)获取本机网络信息

    [Qt教程] 第35篇 网络(五)获取本机网络信息 楼主  发表于 2013-9-5 11:32:58 | 查看: 278| 回复: 2 获取本机网络信息 版权声明 该文章原创于作者yafeilinu ...

  4. 【万众期待】左盟主688页QT教程震撼发布!88个例程,一大波酷炫UI+项目实战案例来袭,让您久等了!!!...

    上周发布Linux C应用教程之后,一大波粉丝在公众号留言咨询什么时候能推出QT教程.左盟主团队历时大半年的编写,万众期待的嵌入式QT教程<[正点原子]I.MX6U嵌入式Qt开发指南V1.0&g ...

  5. Qt6教程之三(3) QtWedget自定义控件

    在之前的博客中,我们使用的控件都是Qt官方提供的,对于控件的特性也只能被动地接受,为了打破这种束缚,可以按照自己的想法来定义控件. 不过自定义控件必须遵守Qt官方的一套自定义控件规则,在规则之下我们就 ...

  6. SL项目开发自定义控件封装之新建自定义控件类库

    一:自定义控件封装的作用 封装,继承,多态是面向对象语言的核心思想.封装的意义提现在程序思想"高内聚,低耦合"中,使团队开发分工更加明确,在SL程序中封装起到了很重要的作用,无论是 ...

  7. [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel

    [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel 楼主  发表于 2013-5-21 20:36:22 | 查看: 923| 回复: 7 SQL表格模型QSqlTable ...

  8. [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档

    [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档 楼主  发表于 2013-5-21 22:00:51 | 查看: 475| 回复: 0 使用DOM创建和操作XML文档 版权声明 该 ...

  9. [Qt教程] 第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel

    [Qt教程] 第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel 楼主  发表于 2013-5-21 20:54:13 | 查看: 677| 回复: 6 SQL关 ...

最新文章

  1. Confluence 6 下载和安装 MySQL 驱动
  2. Ribbon-2通过代码自定义配置ribbon
  3. 【转】什么是SIEM?
  4. Java后台通过jxl生成Excel表格
  5. 16R-在数组中查找目标值
  6. install cuda on ubuntu
  7. 基于jquery的ajax分页效果
  8. 通信原理(五) 信道编码
  9. Flutter29,毕向东java基础全套视频教程百度网盘
  10. 走进脑计划(四):linux下安装SPM、DPABI
  11. 房价,经济转型,技术创新
  12. 足底穴位按摩方式配合智能报钟器管理
  13. matlab cftool光滑曲线导出为什么就不光滑了_博学 MATLAB如何导出精美的论文插图...
  14. 小米8透明探索版无限重启,且有BootLoader锁的情况下卡刷机成功
  15. matlab实现基于DPCA密度峰值算法的图像分割
  16. 用ps制作动态的地球旋转图片
  17. 宝塔 Plugin ‘InnoDB‘ registration as a STORAGE ENGINE failed 解决办法
  18. 宝鸡计算机软件的工作,宝鸡学计算机软件编程
  19. 九度1465:最简真分数
  20. 手动挡五个档位示意图_手动挡汽车档位图解

热门文章

  1. WPF: 本地化(Localization) 实现
  2. Alyona and copybooks
  3. oracle添加联合主键
  4. 从零开始学java(2)--java中命名的明规则与潜规则
  5. Enterprise Library 4.0简介及改进
  6. 《菜菜的机器学习sklearn课堂》降维算法PCA和SVD
  7. 我只是bug的搬运工之idea的Cannot run program git.exe: CreateProcess error=2
  8. Linux操作Oracle(2)——Oracle导出exp导出用户报错:EXP-00006: 出现内部不一致的错误 EXP-00000: 导出终止失败
  9. opencv学习笔记02
  10. 10张架构图详解数据中台,附全套数据中台PPT