23 自定义控件

案例:组合Spin Box和Horizontal Slider实现联动

 新建Qt设计师界面:

 选择Widget:

 

 选择类名(生成.h、.cpp、.ui文件)

 在smallWidget.ui中使用Spin Box和Horizontal Slider控件

 可以自定义数字区间:

 

在主窗口widget.ui中使用widget并将其提升为smallWidget,使Spin Box和Horizontal Slider封装到一起

提升成功后,widget的类为smallWidget

代码:

联动

//smallwidget
//spinBox数字改变,Slider随着改变
void(QSpinBox:: *singal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,singal,ui->horizontalSlider,&QSlider::setValue);//slider移动,spinBox数字改变
connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);

增加两个按钮:点击设置到一半、点击获取当前值

//smallWidget.h
#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H
#include <QWidget>namespace Ui {
class smallWidget;
}class smallWidget : public QWidget
{Q_OBJECTpublic:explicit smallWidget(QWidget *parent = 0);~smallWidget();//设置数据void setData(int val);//获取数据int getData();private:Ui::smallWidget *ui;
};#endif // SMALLWIDGET_H
//smallWidget.cpp
#include "smallwidget.h"
#include "ui_smallwidget.h"smallWidget::smallWidget(QWidget *parent) :QWidget(parent),ui(new Ui::smallWidget)
{ui->setupUi(this);//spinBox数字改变,Slider随着改变void(QSpinBox:: *singal)(int) = &QSpinBox::valueChanged;connect(ui->spinBox,singal,ui->horizontalSlider,&QSlider::setValue);//slider移动,spinBox数字改变connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}//设置数据
void smallWidget::setData(int val){ui->horizontalSlider->setValue(val);
}//获取数据
int smallWidget::getData(){return ui->horizontalSlider->value();
}smallWidget::~smallWidget()
{delete ui;
}
//widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "QDebug"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//点击设置到一半按钮connect(ui->btn_set,&QPushButton::clicked,[=](){ui->widget->setData(50);});//点击获取当前值按钮connect(ui->btn_get,&QPushButton::clicked,[=](){qDebug()<<ui->widget->getData();});
}Widget::~Widget()
{delete ui;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 单机/集群 部署 Nacos2.2.0

单机部署 1- 拉取镜像 docker pull nacos/nacos-server:v2.2.02- 准备挂载的配置文件目录和日志目录 日志目录(空目录)&#xff1a;./nacos/logs配置文件&#xff1a;./nacos/conf/application.properties 从官网下载 nacos 压缩包&#xff1a;Release 2.2.0 (Dec 14, 2022…

sql进阶:求满足某列数值相加无限接近90%的行(90分位)

sql 一、案例分析二、思路三、代码实现一、案例分析 表中有某个id列和数值列,求数值列占比为90%的id,如有个用户表,存储id和消费金额order_cnt,求一条sql查出消费占比无限接近90%的所有客户,如表中总消费为10000,占比最高的是4000、3000、2800,对应A、B、C用户,查出A、B、C用户…

18.背景轮播

背景轮播 html部分 <div class"container"><div class"slide active" style"background-image: url(./static/20180529205331_yhGyf.jpeg);"></div><div class"slide " style"background-image: url(./s…

【数据挖掘】使用 LSTM 进行时间和序列预测

一、说明 每天&#xff0c;人类在执行诸如过马路之类的任务时都会做出被动预测&#xff0c;他们估计汽车的速度和与汽车的距离&#xff0c;或者通过猜测球的速度并相应地定位手来接球。这些技能是通过经验和实践获得的。然而&#xff0c;由于涉及众多变量&#xff0c;预测天气或…

P3382 【模板】三分法

三分其实是每次取L,R的终点mid&#xff0c;把mid左边一点点的函数值和右边一点点的函数值比较&#xff0c;舍弃一边的区间&#xff0c;这样不断缩小区间直到满足精度要求(一般eps取0.1*精度)&#xff0c;但我们都喜欢取三等分点&#xff0c;其实只要是左边一点点和右边一点点就…

linux 升级node

linux环境在执行npm ci是报错&#xff0c;提示node版本太低&#xff0c;故需升级&#xff0c;升级过程如下&#xff1a; 1. npm cache clean -f 2. npm install -g n 3. n stable # 下载最新的稳定的版本 上面第3行结果如下&#xff1a; installing : node-v20.5.0 mkdi…

SpringCloudAlibaba微服务实战系列(二)Nacos配置中心

SpringCloudAlibaba Nacos配置中心 在java代码中或者在配置文件中写配置&#xff0c;是最不雅的&#xff0c;意味着每次修改配置都需要重新打包或者替换class文件。若放在远程的配置文件中&#xff0c;每次修改了配置后只需要重启一次服务即可。话不多说&#xff0c;直接干货拉…

NoSQL之 Redis配置与优化

文章目录 一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景 二.Redis简介1.了解Redis2.Redis 具有以下几个优点3.Redis为何这么快 三.Redis 安装及应用1.Redis 安装部署2.Redis 命令工具2.1 redis-cli…

数字化新移民的转型之路探析

数字化转型&#xff0c;本质还是转型 很多企业谈到数字化转型时往往会对技术产生敬畏心理&#xff0c;与之伴随的后续动作往往是过度关注科技。但不重视与任用员工&#xff0c;再好的AI、算法、大数据等也发挥不了威力。 人和组织方面的问题&#xff0c;是导致很多企业的数字…

会点C++还需要再学Python吗?

提到的C、数据结构与算法、操作系统、计算机网络和数据库技术等确实是计算机科学中非常重要的基础知识领域&#xff0c;对于软件开发和计算机工程师来说&#xff0c;它们是必备的核心知识。掌握这些知识对于开发高性能、可靠和安全的应用程序非常重要。Python作为一种脚本语言&…

运动蓝牙耳机什么牌子的好用、最好用的运动蓝牙耳机推荐

音乐是运动的灵魂&#xff0c;而一款优秀的运动耳机则是让音乐与我们的身体完美融合的关键。今天&#xff0c;我推荐五款备受运动爱好者喜爱的耳机&#xff0c;它们以卓越的音质、舒适的佩戴和出色的稳定性能脱颖而出&#xff0c;助你在运动中创造最佳状态。 1、NANK南卡Runne…

Langchain 的 SimpleSequentialChain 和 SequentialChain

Langchain 的 SimpleSequentialChain 和 SequentialChain 1. SimpleSequentialChain2. SequentialChain3. Memory in Sequential Chains 1. SimpleSequentialChain 调用语言模型后的下一步是对语言模型进行一系列调用。当您想要获取一个调用的输出并将其用作另一个调用的输入时…

安全第一天

1. 编码 1.1 ASCLL编码 ASCII 是基于拉丁字母的一套电脑编码系统&#xff0c;主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准&#xff0c;并等同于国际标准ISO/IEC 646。 1.2 URL编码 URL&#xff1a;&#xff08;统一资源定位器、定位地址&#xff0c;俗称网页…

k8s常见的资源对象使用

目录 一、kubernetes内置资源对象 1.1、kubernetes内置资源对象介绍 1.2、kubernetes资源对象操作命令 二、job与cronjob计划任务 2.1、job计划任务 2.2、cronjob计划任务 三、RC/RS副本控制器 3.1、RC副本控制器 3.2、RS副本控制器 3.3、RS更新pod 四、Deployment副…

分布式协议Raft和Paxos详解

一、Raft是一种相对简化的分布式一致性算法&#xff0c;它由Diego Ongaro和John Ousterhout于2013年提出。与Paxos相比&#xff0c;Raft的设计目标是使一致性问题更易于理解、实现和部署。 Raft协议核心思想是将一致性问题分解为几个关键组件&#xff0c;包括领导者选举、日志…

概率论的学习和整理21:用EXCEL来做假设检验(未完成草稿)

目录 1 EXCEL可以用来做假设检验 1.1 如何打开 数据分析 和 规划求解 1.2 EXCEL里关于正态分布的准备知识 2 基本的假设检验 2.1 最基本的假设检验&#xff0c;单边的Z检验 2.1 双样本F检验 2.1.1 例题 2.1.2 进行F检验之前需要满足一些假设条件 2.1.3 计算步骤 2.1…

MySQL 数据抽稀 每分钟取一条

假如原始数据为每5秒一个数据&#xff0c;现在想展示为每4分钟一条数据&#xff0c;先按照分钟数把除以4余数为0的行选出来&#xff0c;在按照 年月日 时分&#xff0c;做组内排序&#xff08;窗函数ROW_NUMBER&#xff09;&#xff0c;最后再拿出序号为1的行。 WITH data_01 …

spring学习笔记十

Spring使用注解Annotation定义Bean 1、UserDao接口和实现类 public interface UserDao {void save(); }Component("userDao") public class UserDaoImpl implements UserDao {public void save() {System.out.println("user dao save...");} }2、SpringC…

网工实操基础学习23.07.05

1.交换机&#xff0c;路由器 交换机的作用是链接同一个网络下的所有设备&#xff0c;如果有无线设备加入&#xff0c;需要添加AP&#xff08;无线接入点&#xff09;设备在交换机层次上 路由器的作用是将不同网络下的设备链接 2.IP地址 划分网段&#xff1a;网络位、网段、…

OpenCV SGBM 参数解释

param minDisparity 最小可能的视差值。 通常情况下&#xff0c;它为零&#xff0c;但有时。 校正算法可以移动图像&#xff0c;因此需要相应调整该参数。 。 param numDisparities 最大视差减去最小视差。 该值始终大于 。 零。 在当前的实现中&#xff0c;该参数必须能被 16…