Qt自定义控件封装

2023-11-02

自定义控件封装

样例效果:

在这里插入图片描述

描述:

  • 部件QSpinBox和QSlider组合,改变其中一个的值,另一个随之改变
  • 添加按钮快速获取或设置组合的值

部件组合

  1. 新建项目,添加新建项Qt——>Qt设计师界面类——>选择界面模板(widget)——>命名类名,完成

在这里插入图片描述
2. 进入新添加模板的ui设计界面,向其中添加部件并布局

  1. 进入主窗口ui设计界面,添加widget部件点击右键——>提升为——>输入提升的类名称——>提升
    在这里插入图片描述

利用信号和槽联系组合内的部件

在组合类的源文件中建立二者的connect联系

// QSpinBox的值变化,则QSlider随之变化
// QSpinBox::valueChanged有重构,直接添加到connect中编译器将无法判断该调用哪一个
void (QSpinBox:: * spSingal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,spSingal,ui->horizontalSlider,&QSlider::setValue);

// QSlider划动,QSpinBox的值随之改变
connect(ui->horizontalSlider,&QSlider::valuChanged,ui->spinBox,&QSpinBox::setValue);

组合类提供改变值和获取值的接口

// 修改值
void SmallWidget::setNum(int num) {
    ui->spinBox->setValue(num);
}

// 获取当前值
int SmallWidget::getNum() {
    return ui->spinBox->value();
}

添加快捷按钮

主窗口中添加按钮,并将建立connect联系

// 点击按钮时获取组合部件当前的值
connect(ui->pushButton,&QPushButton::clicked,[=](){
    qDebug() << ui->widget->getNum();
});

// 点击按钮时将组合部件值设置为50
connect(ui->pushButton_2,&QPushButton::clicked,[=](){
    ui->widget->setNum(50);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt自定义控件封装 的相关文章

  • 如何使用 VS2022 中的新控制台应用程序模板访问命令行参数

    我想知道如何访问命令行参数 因为这是在Program cs通过 Visual Studio 2022 中控制台应用程序的新模板创建文件 See https aka ms new console template for more infor
  • 简单的C问题

    作为我正在进行的项目的一部分 我必须开始学习 C 我已经开始解决其中的 欧拉 问题 并且遇到了麻烦 我必须找到 1000 以下的所有 3 或 5 的倍数之和 有人可以帮助我吗 谢谢 include
  • 数据结构的优化存储以实现快速查找和持久化

    Scenario 我有以下方法 public void AddItemSecurity int itemId int userIds public int GetValidItemIds int userId 最初我正在考虑表单上的存储 i
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 在 C++ 中,std::string::push_back() 的摊余复杂度是 O(1) 吗?

    我知道标准指定它适用于向量 但是字符串呢 是的 它是摊销常数时间 请参见第 716 页的表 101本文件的 http www open std org jtc1 sc22 wg21 docs papers 2012 n3485 pdf 表
  • MVC 中的 Blazor:组件被渲染,但 @onclick 不起作用。连接问题

    我正在尝试在 net core 3 MVC 项目中使用 Blazor 我使用了一些教程来做到这一点 例如https fizzylogic nl 2019 08 18 integrating blazor in an existing asp
  • Windows CE 6.0 和运行时链接到调试 DLL /MDd

    我在 x86 PC 上使用 Windows CE 6 0 R3 我已经为该平台构建了 NK bin 和 SDK 但我有一些问题需要了解如何使用 MTd 调试 DLL 构建控制台应用程序 如果我尝试构建这个 main c with MDd i
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 如何将对 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

    我们正在处理一个网站项目并尝试参考System Data DataSetExtensions 使用 Web 应用程序会更好 不过 技术主管有她的理由 这是我们尝试过的 找到装配路径 打开 Visual Studio 命令提示符并运行sn e
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 如何在 C 预处理器中可靠地检测 Mac OS X、iOS、Linux、Windows? [复制]

    这个问题在这里已经有答案了 如果有一些跨平台 C C 代码需要在 Mac OS X iOS Linux Windows 上编译 我如何在预处理器过程中可靠地检测到它们 大多数编译器都使用预定义的宏 您可以找到列表here http sour
  • 使用 Node.js 访问用 C++ 编写的 SDK

    我有一个用 C 语言编写的 SDK 可以与我的扫描仪设备进行通信 我需要开发一个可以访问扫描仪设备的电子应用程序 我知道有很多库可用于扫描仪 但我想使用这个 SDK 因为它允许我访问设备的完整功能 而且它是由设备制造商提供的 那么 有没有什
  • C 中函数“fgets”的参数太少

    每当我编译这个错误时 我都会收到该错误 但我不知道为什么 我直接从书上抄袭这个 有人可以帮忙吗 include
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • File.Move 的原子性

    我想将目录中的文件重命名为原子事务 该文件不会更改目录 该路径作为 NTFS 文件系统的 UNC 路径提供 可能位于服务器 03 或 08 上 File Move 对于这些目的来说是原子的吗 例如 它要么成功完成 要么失败 以使原始文件仍然

随机推荐

  • 使用内核API函数找到I2C和串口控制器发送数据

    我们一般操作I2C或者串口都是编写应用程序调用内核硬件提供的设备节点操作这些硬件的 但是在某个项目中 需要在shutdown的时候往i2c和tty发送数据 发送数据给外置的mcu mcu几秒内就会给cpu断电 所以 这个动作无法在应用层中完
  • 靠谱的车 算法

    靠谱的车 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就直接跳过 其余功能都正常 比如 23再多一块钱就变为25 39再
  • Amazon S3 REST方式获取Object

    Amazon S3 用REST方式获取文件 具体参见API http docs aws amazon com AmazonS3 latest API RESTObjectGET html 利用C 构建下面的请求 GET ObjectName
  • MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记

    Learning Deep Context aware Features over Body and Latent Parts for Person Re identification 作者 DangWei Li等人 CVPR 2017 1
  • DOS常用命令(从入门到精通)

    DOS命令学习 一 DOS使用常识 DOS的概况 DOS Disk Operating System 是一个使用得十分广泛的磁盘操作系统 就连眼下流行的Windows9x ME系统都是以它为基础 常见的DOS有两种 IBM公司的PC DOS
  • 朴素贝叶斯理论推导与三种常见模型

    朴素贝叶斯 Naive Bayes 是一种简单的分类算法 它的经典应用案例为人所熟知 文本分类 如垃圾邮件过滤 很多教材都从这些案例出发 本文就不重复这些内容了 而把重点放在理论推导 其实很浅显 别被 理论 吓到 三种常用模型及其编码实现
  • C++ 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测

    C 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测 一 背景 二 Keras 定义神经网络结构 channels first 与 channels last channels first 与 channels l
  • Sourcetree 打开闪退怎么处理

    只需要把箭头指向的SourceTree exe Url 3vynpq3lkfkc3vf35ldq2wva2cs3o2zs文件删除 如果是多个一并删除 只留一个SourceTree文件夹即可
  • WebService 与 SOAP、WSDL、UDDI

    什么是WebService Web Services 是一种基于组件的软件平台 是面向服务的Internet 应用 Web Services 是应用于Internet 的 而不是限于局域网或试验环境 这要求提出的Web Services 框
  • 微服务2-nacos 配置中心

    1什么是配置中心 在微服务架构中 当系统从一个单体应用 被拆分成分布式系统上一个个服务节点后 配置文件也必须跟着迁移 分割 这样配置就分散了 不仅如此 分散中还包含着冗余 如下图 2为什么要使用配置中心 配置中心将配置从各应用中剥离出来 对
  • Unity 游戏框架搭建 2017 (五) 简易消息机制

    什么是消息机制 23333333 让我先笑一会 为什么用消息机制 三个字 解 耦 合 我的框架中的消息机制用例 1 接收者 Receiver cs using UnityEngine namespace QFramework Example
  • 如何运行ImageMagick的命令行工具

    在http www imagemagick org script index php网站下载相应的执行文件 这里以下载ImageMagick 6 6 5 10 Q16 windows static exe为例说明 将ImageMagick
  • spring集成kafka并对消息进行监听

    spring集成kafka 文章目录 spring集成kafka kafka本地安装启动 pom文件 生产配置 消费者配置 创建topic工具类 生产业务 消费业务 消息接收类 监听类 业务处理 异步 同步 ONEWAY 需要依赖zooke
  • layuiAdmin侧边栏菜单刷新保持当前页面

    layuiadmin框架 每次刷新整个页面 都会回到首页 现在想保持在当前页面 layuiAdmin侧边栏菜单刷新保持当前页面 利用缓存来处理 供自己参考如下 layui config base ROOT homeStatic layuia
  • [移动通讯]【Carrier Aggregation-4】【LTE-4】

    前言 推荐两个在线工具 UECapabilityInformation Decoder https www sqimway com ue capa php FGI Decoder http howltestuffworks blogspot
  • c#基础语法笔记----个人学习笔记

    改变应用图标 1 当 解决方案资源管理器 中有项目选中时 在 项目 菜单上单击 属性 2 选择 应用程序 窗格 3 从 图标 下拉列表中选择图标 ico 文件 实例化 new 类名 例如 user a new user 可写 set ret
  • Matplotlib学习

    Matplotlib学习 1 什么是Matplotlib 是专门用于开发2D图表 包括3D图表 以渐进 交互式方式实现数据可视化 2 为什么要用Matplotlib 可视化是在整个数据挖掘的关键辅助工具 可以清晰的理解数据 从而调整我们的分
  • python类的公有和私有

    结论 python里并没有严格的私有变量和函数限制 仅仅是对程序员的限制 尽量不要去使用 1 xxx 单下划线 开始的成员变量叫做保护变量 意思是只有类实例和子类实例能访问到这些变量 需通过类提供的接口进行访问 2 xxx 类中的私有变量
  • 解决在Android中给Button设置Padding无效的问题

    在Xml中给Button设置padding 0 和用代码给Button设置padding 0 都无效 是因为 这种情况下 Button的宽高是受TextView中的变量 mMinWidth mMinHeight和View中的变量 mMinW
  • Qt自定义控件封装

    自定义控件封装 样例效果 描述 部件QSpinBox和QSlider组合 改变其中一个的值 另一个随之改变 添加按钮快速获取或设置组合的值 部件组合 新建项目 添加新建项Qt gt Qt设计师界面类 gt 选择界面模板 widget gt