【Qt教程】2.6 - Qt5 自定义控件封装
自定义控件是将原有控件组合、封装,并填入自定义功能,留出适当的函数接口,方便其他控件的调用。设计窗口时,可以将控件拖入,方便模块化设计。
GitHub代码仓库:Qt学习例程
1. 建立工程、新建自定义控件
创建widget工程
新建控件:
Add New...,Qt,Qt设计师界面类。模板选择 Widget。
给自定义控件随便起一个名称。
最后就看到两个控件窗口了。
2. 布局、代码关联
将系统控件 放入到 新建的控件中。进行布局,调整大小。
将整型微调 和 水平滑块用代码关联。使水平滑块会随着微调移动,拖动水平滑块也会使微调显示框更新变化。
3. 在其他窗口中调用自定义控件
在widget窗口内,调用自定义控件:拖入 widget控件,右键 - 提升为。
将自定义控件的类名称复制下来。
粘贴到提升的类名称中,(勾选全局包含),添加,提升。
之后再想将其他控件提升为自定义控件,就可直接右键 - 提升为 - 以前勾选过全局包含的类。
可以看到,提升后的widget控件,从QWidget类,变成了自定义控件的类。
实验结果。微调数字框,水平滑块会滑动。拖动水平滑块,微调数字框中的数值也会发生变化。且上下两个自定义控件相互独立,互不干扰。
4. 预留外部接口
作为完整的自定义控件,还需要留出适当的接口,提供一些功能以供外部调用。
添加两个测试按键。
给按键添加信号槽,调用留出的外部接口,实现对应功能。
最终实验现象。
以后的代码越来越大,文件也会变多,所以完整代码就不再发博客中了。会将工程同步到GitHub,欢迎各位下载。
GitHub代码仓库:Qt学习例程
【Qt教程】2.6 - Qt5 自定义控件封装相关推荐
- QT教程2:QT5的体系构架
一.列出QT5体系内容 QT5的模块有• QtCore • QtGui • QtWidgets • QtMultimedia • QtBluetooth • QtNetwork • QtPositio ...
- [Qt教程] 第24篇 数据库(四)SQL查询模型QSqlQueryModel
[Qt教程] 第24篇 数据库(四)SQL查询模型QSqlQueryModel 楼主 发表于 2013-5-21 14:33:47 | 查看: 869| 回复: 1 SQL查询模型QSqlQuery ...
- [Qt教程] 第35篇 网络(五)获取本机网络信息
[Qt教程] 第35篇 网络(五)获取本机网络信息 楼主 发表于 2013-9-5 11:32:58 | 查看: 278| 回复: 2 获取本机网络信息 版权声明 该文章原创于作者yafeilinu ...
- 【万众期待】左盟主688页QT教程震撼发布!88个例程,一大波酷炫UI+项目实战案例来袭,让您久等了!!!...
上周发布Linux C应用教程之后,一大波粉丝在公众号留言咨询什么时候能推出QT教程.左盟主团队历时大半年的编写,万众期待的嵌入式QT教程<[正点原子]I.MX6U嵌入式Qt开发指南V1.0&g ...
- Qt6教程之三(3) QtWedget自定义控件
在之前的博客中,我们使用的控件都是Qt官方提供的,对于控件的特性也只能被动地接受,为了打破这种束缚,可以按照自己的想法来定义控件. 不过自定义控件必须遵守Qt官方的一套自定义控件规则,在规则之下我们就 ...
- SL项目开发自定义控件封装之新建自定义控件类库
一:自定义控件封装的作用 封装,继承,多态是面向对象语言的核心思想.封装的意义提现在程序思想"高内聚,低耦合"中,使团队开发分工更加明确,在SL程序中封装起到了很重要的作用,无论是 ...
- [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel
[Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel 楼主 发表于 2013-5-21 20:36:22 | 查看: 923| 回复: 7 SQL表格模型QSqlTable ...
- [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档
[Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档 楼主 发表于 2013-5-21 22:00:51 | 查看: 475| 回复: 0 使用DOM创建和操作XML文档 版权声明 该 ...
- [Qt教程] 第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel
[Qt教程] 第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel 楼主 发表于 2013-5-21 20:54:13 | 查看: 677| 回复: 6 SQL关 ...
最新文章
- Confluence 6 下载和安装 MySQL 驱动
- Ribbon-2通过代码自定义配置ribbon
- 【转】什么是SIEM?
- Java后台通过jxl生成Excel表格
- 16R-在数组中查找目标值
- install cuda on ubuntu
- 基于jquery的ajax分页效果
- 通信原理(五) 信道编码
- Flutter29,毕向东java基础全套视频教程百度网盘
- 走进脑计划(四):linux下安装SPM、DPABI
- 房价,经济转型,技术创新
- 足底穴位按摩方式配合智能报钟器管理
- matlab cftool光滑曲线导出为什么就不光滑了_博学 MATLAB如何导出精美的论文插图...
- 小米8透明探索版无限重启,且有BootLoader锁的情况下卡刷机成功
- matlab实现基于DPCA密度峰值算法的图像分割
- 用ps制作动态的地球旋转图片
- 宝塔 Plugin ‘InnoDB‘ registration as a STORAGE ENGINE failed 解决办法
- 宝鸡计算机软件的工作,宝鸡学计算机软件编程
- 九度1465:最简真分数
- 手动挡五个档位示意图_手动挡汽车档位图解
热门文章
- WPF: 本地化(Localization) 实现
- Alyona and copybooks
- oracle添加联合主键
- 从零开始学java(2)--java中命名的明规则与潜规则
- Enterprise Library 4.0简介及改进
- 《菜菜的机器学习sklearn课堂》降维算法PCA和SVD
- 我只是bug的搬运工之idea的Cannot run program git.exe: CreateProcess error=2
- Linux操作Oracle(2)——Oracle导出exp导出用户报错:EXP-00006: 出现内部不一致的错误 EXP-00000: 导出终止失败
- opencv学习笔记02
- 10张架构图详解数据中台,附全套数据中台PPT