一 、自定义控件封装

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_OBJECTpublic: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、效果

QT学习之自定义控件相关推荐

  1. Qt学习之Qt基础入门(下)

    1. 前言 前两篇博客简单的阐述了一下Qt的入门用法,这篇博客继续跟着视频学习. Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) ...

  2. 继承QWidget使用QPainter自定义二维图形控件【Qt学习】

    继承QWidget使用QPainter自定义二维图形控件[Qt学习] 通过阅读该文章,将了解本文所说的二维图形控件的基本概念.为何要自定义二维图形控件.如何自定义二维图形控件. 该文章将首先进行一些书 ...

  3. 【QT学习笔记】基于QT的天气预报

    [QT学习笔记]基于QT的天气预报 前言 那就开始吧! 先看一下效果 颜面最重要,画个UI 构造实现 怎么开始? 开始解析数据 关于城市切换 ok 最后源码献上 感谢 前言 学习qt已经有一段时间了, ...

  4. Qt学习笔记,Qt国际化

    Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\     ...

  5. Qt学习笔记,Qt程序架构设计要旨

    Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...

  6. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  7. 对QT学习之路12-14的源代码补充与修正

    QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

  8. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  9. Qt学习笔记之数据库

    一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...

  10. Qt学习笔记之文件处理

    Qt提供了通用的文件处理类QFile和处理文本的QTextStream类和处理二进制数据的QDataStream类,这些流操作极大地方便了对文件的督促存储.对文件信息和目录进行操作的类是QfileIn ...

最新文章

  1. 软件开发人员能力模型
  2. Mysql按周,按月,按日,按小时分组统计数据
  3. Android模仿京东登录注册,Android:布局实例之模仿京东登录界面
  4. SylixOS异常管理
  5. python app开发模块_Python pytkapp包_程序模块 - PyPI - Python中文网
  6. 如何阻止机器人杀害人类?
  7. Ubuntu下多版本OpenCV共存和切换
  8. 代写python assignment经常用到的代码语法分享!
  9. 投稿期刊:机械人机交互图形图象交叉学科
  10. 收藏一个Excel甘特图模板
  11. 巧解快速排序时间复杂度
  12. C# NOPI读取Excel
  13. 应用内收费--商品列表--子龙山人
  14. MTK7621 uboot编译与烧写
  15. Online Judge系统(简称OJ)
  16. 人脸识别主要算法原理
  17. Python可视化:python画图字体设置
  18. 数字孪生城市的2个技术关键点 优锘ThingJS
  19. Day 15 正则表达式
  20. 【每日一题】打卡 12

热门文章

  1. “人人都是数据科学家从新开始用Python学习数据科学的完整教程P1
  2. layuimini tab切换刷新解决方案
  3. 编写一个应用程序,给出汉字“你”“我”“他”在Unicode表中的位置
  4. Python 高性能编程
  5. mysql成绩是什么数据类型_mysql数据类型
  6. linux实验考试题
  7. Android手机启动流程探究
  8. JDK1.6帮助文档中文版
  9. 第三方支付易宝支付的具体实现
  10. 10W+字C语言从入门到精通保姆级教程(2021版下)