【Qt教程】2.6 - Qt5 自定义控件封装

2023-11-12

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

GitHub代码仓库:Qt学习例程

 

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

创建widget工程

 

新建控件:

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

 

 

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

 

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

 

2. 布局、代码关联

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

 

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

 

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

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

 

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

 

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

 

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

 

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

 

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

 

4. 预留外部接口

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

 

添加两个测试按键。

 

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

 

最终实验现象。

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

GitHub代码仓库:Qt学习例程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Qt教程】2.6 - Qt5 自定义控件封装 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 当我单击 C# 中的“取消”按钮时重定向到新页面(Web 部分)

    Cancel button tc new TableCell btnCancel new Button btnCancel Text Cancel btnCancel Click new EventHandler btnCanel Clic
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • Java 字符串转换为字符数组(String转成char[]数组)的方法

    转载 Java 字符串转换为字符数组 String转成char 数组 的方法 java 字符串转字符数组 Smile sea breeze的博客 CSDN博客
  • C++11 互斥锁

    目录 互斥锁 2 1 独占互斥量std mutex std mutex使用Demo 2 2 递归互斥量std recursive mutex 死锁demo 使用std recursive mutex递归锁 2 3 带超时的互斥量 std t
  • cityscapes数据集的下载和应用

    链接内容 官方地址 https www cityscapes dataset com 使用git的地址 https github com mcordts cityscapesScripts 要自己登录download的哦 数据下载在官网下载
  • SQL注入之union联合注入

    特别申明 本文章仅供学习使用 其余利用本文章内容进行的任何行为与本人无关 做任何渗透操作前 请一定三思 做个遵纪守法的好公民 简介 在初见SQL注入提到三种分类方式 其中一个是根据注入是否有回显来进行分类 本文将详细讲解有回显这类的注入方式
  • 调试Learning to Generate Questions by Learning What not to Generate代码bug及解决

    一 路径问题 按要求下载BPE后 在prepro util py中修改路径 一直找不到 本来以为用相对路径 后来改成绝对路径就可以了 虽然bug很小 但解决时间过长 效率较低 还是对代码的基本功太差 二 导入时错误 经查阅资料 应该是导入时
  • vue解决el-select下拉框不显示label问题

    问题描述 最近在开发项目的过程中 遇到了这个问题 el select的下拉框数据是后端返回的 当点击下拉框选项时会请求后端的接口 当在请求接口的过程中label是有显示的 但是在请求完成后 label就没有显示了 问题来源 vue无法监听动
  • Visual Stuio Code C++环境配置(详细)

    目录 首语 先下载一个Visual studio code MinGW部分 环境变量添加 Visual Studio code环境配置 中文乱码 首语 大家在学习C 的时候就会先选择一个好的代码编辑器和代码编译器 有些人会选择Visual
  • 怎么在中国知网免费下载论文?

    作为一名马上就要毕业的学生 论文便提上了日程 写论文总是离不开阅读文献 在学校的话可以用校园网访问知网 然后下载中国知网的文献 如果不在学校的话 那就悲剧了 免费下载不了知网文献 下面我总结了几个下载中国知网文献的方法 希望能够帮到大家 百
  • docker里的mongo error: WT_ERROR: non-specific WiredTiger error“}解决方法

    背景 电脑强制重启后 docker里的mongo不能正常使用 索引不能位置被破坏 错误log是这样的 error WT ERROR non specific WiredTiger error 解决方法 简历另外一个容器 volume挂载和上
  • C++ 分数的加减乘除(运算符重载)

    文章目录 一 题目描述 二 输入与输出 1 输入 2 输出 三 参考代码 一 题目描述 Fraction类的基本形式如下 定义Fraction类 class Fraction private int fz fm int commonDivi
  • 奇异值分解的反变换matlab程序,奇异值分解(SVD)基础概念及MATLAB仿真

    奇异值分解 SVD 基础概念及MATLAB仿真 奇异值分解 SVD 基础概念及MATLAB仿真 奇异值分解 singular value decomposition 简称SVD 不仅广泛应用于机器学习领域 也在控制理论中有着广泛的应用 本文
  • springboot 启动异常Input length = 1解决

    问题原因是yml配置文件内容引起 并且yml内容没问题 空格也没问题 而是编码问题引起 在idea中打开settings gt Editor gt File Econdings 设置yml为UTF 8 如果还是启动失败 解决方法 将yml内
  • 一个合格(优秀)的前端都应该阅读这些文章

    的确 有些标题党了 起因是微信群里 有哥们问我 你是怎么学习前端的呢 能不能共享一下学习方法 一句话也挺触动我的 我真的不算是什么大佬 对于学习前端知识 我也不能说是掌握了什么捷径 当然 我个人的学习方法这篇文章已经在写了 预计这周末会在我
  • The overload Pattern

    最近研究有关C 17的书和博客文章时 偶然发现了这种访问模式std variant 使用overload模式 您可以 访问 提供单独的lambda include
  • 如何查看端口占用

    1 Win R 打开 运行 在 运行 中输入cmd 然后按电脑的回车进入命令行 2 输入命令 netstat ano 即可查出所有的端口占用信息 3 netstat ano findstr 端口 可查看具体的端口占用信息 4 查看有效会话
  • 关于B/S结构系统的会话机制(session机制)

    关于B S结构系统的会话机制 session机制 什么是会话 用户打开浏览器 进行一系列操作 最后关闭浏览器 这个整个过程叫做一次会话 真正意义上 会话是session对象的创建到结束的过程 一个session对应一个会话 在服务器端有一个
  • 虚拟机如何进行备份和迁移?

    文章目录 一 虚拟机的备份 方式一 使用VMvare自带的克隆功能 方式二 手动复制 二 虚拟机的迁移 本文以Ubuntu18 04为例 使用的工具是VMware Workstation 16 Pro 即VMware 最新版 Ubuntu1
  • 谷歌直链下载云盘数据集,使用谷歌云盘生成直接下载的url,示例: NeRFStudio-nerfacto默认训练数据集poster下载,nerfstudio 数据集下载链接

    1 如何生成谷歌直链下载云盘数据集的url 谷歌云盘 NeRFStudio nerfacto默认训练数据集poster下载链接 https drive google com uc export download confirm id 1dm
  • 差分与微分

    差分与微分 差分和微分都是数学中的一些基本概念 它们在数学 物理学 经济学和其他领域中都有广泛的应用 1 差分 差分可以理解为函数值之间的差别 特别地 如果一个函数 f f f 在两个相邻点 x 0
  • 【Qt教程】2.6 - Qt5 自定义控件封装

    自定义控件是将原有控件组合 封装 并填入自定义功能 留出适当的函数接口 方便其他控件的调用 设计窗口时 可以将控件拖入 方便模块化设计 GitHub代码仓库 Qt学习例程 1 建立工程 新建自定义控件 创建widget工程 新建控件 Add