QT学习之自定义控件_qt 文件夹控件_无聊的阿乐的博客-程序员信息网

技术标签: 学习  QT  qt  ui  

一 、自定义控件封装

1、 添加新文件 - Qt – 设计师界面类 (smallwidget.h smallwidget.cpp smallwidget.ui)
2、在添加的新 smallwidget.ui中 设计 QSpinBox和QSlider 两个控件,组合在一起

在这里插入图片描述

3、 主UI界面中使用自定义控件,拖拽一个Widget,点击提升为刚在添加的新控件类的名字smallwidget,点击添加,点击提升,显示为如下效果(已经添加了两个按钮用来调用setnum 和 getnum 新接口)

在这里插入图片描述

4、 实现功能,改变数字,滑动条跟着移动 ,信号槽监听。

在添加的新控件类的smallwidget.cpp文件中的构造函数中添加代码

#include "smallwidget.h"
#include "ui_smallwidget.h"

smallwidget::smallwidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::smallwidget)
{
    
    ui->setupUi(this);

    void(QSpinBox:: *spsignal)(int) = &QSpinBox::valueChanged;//槽函数有重载版本,需要用函数指针,信号函数和槽函数的参数要一一对应

    connect(ui->spinBox, spsignal, ui->horizontalSlider, &QSlider::setValue);

    connect(ui->horizontalSlider, &QSlider::valueChanged, ui->spinBox, &QSpinBox::setValue);

}
5、 在新控件类中提供 getNum 和 setNum对外接口,

在smallwidget.h中添加

#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H

#include <QWidget>

namespace Ui {
    
class smallwidget;
}

class smallwidget : public QWidget
{
    
    Q_OBJECT

public:
    explicit smallwidget(QWidget *parent = nullptr);
    ~smallwidget();

	//添加
	///
    void setNum(int val);
    int getNum();
	///


private:
    Ui::smallwidget *ui;
};

#endif // SMALLWIDGET_H

在smallwidget.cpp中添加

void smallwidget::setNum(int val)
{
    
    ui->spinBox->valueChanged(val);

}

int smallwidget::getNum()
{
    
    return ui->spinBox->value();
}

6、 测试接口

在 主.cpp中添加代码,调用接口

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    
    ui->setupUi(this);


    connect(ui->btn1, &QPushButton::clicked, [=](){
    
        ui->widget->setNum(50);//设置为进度条的一半
    });

    connect(ui->btn2, &QPushButton::clicked, [=](){
    
       qDebug()<< ui->widget->getNum();//获取当前的值
    });

}

MainWindow::~MainWindow()
{
    
    delete ui;
}


7、效果

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44618297/article/details/123450371

智能推荐

[19保研]西北工业大学 计算机学院 2018年全国优秀大学生暑期夏令营招生简章_计算机与软件考研的博客-程序员信息网

点击文末的阅读原文或者公众号界面右下角的【夏令营】是计算机/软件等专业的所有保研夏令营活动信息集合,会一直更新的。同时我们也建立了一个QQ群(为公众号所有,非学校所设),同学们可以们在里...

SVM学习总结_舟的博客-程序员信息网

介绍在机器学习中,支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络[1])是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类...

LeetCode算法技巧汇总 -- 持续更新,学无止境!_leetcode 技巧_发飙的蜗牛咻咻咻~的博客-程序员信息网

此篇是本人 LeetCode 算法刷题技巧总结,还包括刷过的算法题分类,自己记录以便后续二刷三刷,也分享给大家欢迎一起交流探讨。话说现在非常遗憾大学期间没能坚持搞 ACM,出来社会才越发觉得后悔,但是遗憾归遗憾,我还是相信种一棵树是十年前,其次是现在,所以重新再来为时不晚!刷起!!!

JavaScript中的解构及数组对象操作_带着梦想飞翔的博客-程序员信息网

JavaScript中的解构及数组对象操作文章目录JavaScript中的解构及数组对象操作解构列表解构参数解构数组解构对象解构数组操作对象的操作JS的结构很灵活,参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax搜集多个参数使用【...变量名】表示结构...

【拯救赵明】四块‘木板’打造一个安全的网络环境_weixin_33766168的博客-程序员信息网

四块&amp;lsquo;木板&amp;rsquo;打造一个安全的网络环境(赵明企业网络整改方案)前  言木桶效应是说对于一个沿口不齐的木桶来说,它盛水的多少,不在于木桶上那块最长的木板,而在于木桶上最短的那块木板。实际上企业网络安全防线就好比是这个木桶,而企业网络不安全因素是永远存在的这就好比木桶里的水。如何不让&amp;lsquo;水&amp;rsquo;突破&a...

Kafka监控工具汇总_weixin_30416497的博客-程序员信息网

对于大数据集群来说,监控功能是非常必要的,通过日志判断故障低效,我们需要完整的指标来帮我们管理Kafka集群。本文讨论Kafka的监控以及一些常用的第三方监控工具。一、Kafka Monitoring首先介绍kafka的监控原理,第三方工具也是通过这些来进行监控的,我们也可以自己去是实现监控,官网关于监控的文档地址如下:http://kafka.apache.org/docume...

随便推点

Java如何将给定的字符串转成Class对象_java 字符串转class_Turn X7的博客-程序员信息网

给定一个定义类的字符串,比如“package com.teasp.compile; public class Test{ public static void main(String[] args){System.out.println(\"compile test.\");} }”,怎么将其转换成Class对象呢?下面的代码可以实现该功能:package com.turnx7.DynamicProxy;import javax.tools.*;import java.lang.reflect.

Solaris8上安装openssh_jadesuper6的博客-程序员信息网

Solaris8上安装openssh下载地址:ftp://ftp.sjtu.edu.cn/sites/ftp.sunfreeware.com/pub/freeware/sparc/5.8/下载的文件:libgcc-3.4.6-sol8-sparc-local.gzopenssh_bsm-4.3p2-sol8-sparc-local.gzopenssl-0.9.8d-sol8-s

mooc浙大数据结构PTA习题之Reversing Linked List_wss123wsj的博客-程序员信息网

02-线性结构3 Reversing Linked List(25 分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, the...

Android6.0危险权限列表_android 危险权限列表_ChampionDragon的博客-程序员信息网

Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担.动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应用权限,Android将权限分为普通权限和危险权限,危险权限需要在使用时让用户手动允许。危险权限一共9组24个权限,表格如下:权限组名 权限名 CALENDAR READ_CALE...

带你掌握java反序列化漏洞及其检测_反序列漏洞验证_华为云开发者联盟的博客-程序员信息网

摘要:在本文中将先介绍java反序列化漏洞的原理,然后在此基础上介绍安全工具如何检测、扫描此类漏洞。

推荐文章

热门文章

相关标签