当前位置: 首页 > news >正文

Qt 自定义控件

 学过的东西很久不用都已经忘记了,即使是很简单的事情

1、添加一个Qt 设计师界面类

 

 如何将这个放到比较好看并且是居中的呢?

布局--》水平-》竖直 

点击大的widget 不是这两个控件

 

 2、在主窗口中添加一个widget 来加载上面我们已经拿到组合控件

 3、将这个widget提升为

 

 之后了我们验证一下这个是不是成功,直接运行程序:

 如果出现这样就说明加载成功这个自定义控件了

4、我们需要让这个自定义控件来实现相互显示;

    // 设计  数字改变的时候  滑动块移动到对应的位置
    void(QSpinBox:: * singlespinBox)(int)=&QSpinBox::valueChanged;
    connect(ui->sBox,singlespinBox,ui->horizontalSlider,&QSlider::setValue);

测试一下:

 5、获得slider 上面的值

   // 数字随着slider 的滑动而改变数值
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->sBox,&QSpinBox::setValue);

测试一下:

 6、我们需要在主窗口分别设置get 和set 的功能

在smallwidget 中写两个函数

#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();
    
    int  getNumber();
    void setNUber();

private:
    Ui::smallwidget *ui;
};

#endif // SMALLWIDGET_H

 

 代码:

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

smallwidget::smallwidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::smallwidget)
{
    ui->setupUi(this);
    // 设计  数字改变的时候  滑动块移动到对应的位置
    void(QSpinBox:: * singlespinBox)(int)=&QSpinBox::valueChanged;
    connect(ui->sBox,singlespinBox,ui->horizontalSlider,&QSlider::setValue);


    // 数字随着slider 的滑动而改变数值
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->sBox,&QSpinBox::setValue);
}

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

int smallwidget::getNumber()
{
    return ui->sBox->value();
}

void smallwidget::setNUber(int num)
{
    ui->sBox->setValue(num);
}
Widget
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

     //获得功能
    connect(ui->getBtn,&QPushButton::clicked,[=](){
        qDebug()<< ui->mywidget->getNumber();
    });

    connect(ui->setBtn,&QPushButton::clicked,[=](){
       ui->mywidget->setNUber(23);
    });
}

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

相关文章:

  • 字节跳动测开实习生面试,拿15K过分吗?
  • 【javaEE】多线程初阶(Part6 阻塞队列)
  • java-php-python-中小型超市管理系统计算机毕业设计
  • 如何使用Jupyter Notebook
  • MongoDB 数据库(一):MongoDB的介绍与安装
  • 数商云采购管理系统:采购业务模式介绍,助力汽车零部件企业采购业务高效协同
  • 【变化检测】国土资源典型要素变化遥感智能监测关键技术及应用
  • 计算机毕设(附源码)JAVA-SSM基于的影评系统
  • Ts内置类型---下
  • 前端面试真题宝典(二)
  • 【Linux】gcc/g++ 和 gdb git工具的基本使用方式
  • 逻辑控制2——循环结构
  • 细节决定成败:探究Mybatis中javaType和ofType的区别
  • 11月最新PS2023软件来了,搭配最新Adobe 2022!支持M1
  • FPGA新起点V1开发板(三)——Quartus II软件的使用(流水灯的烧录以及sof转jic的方法记录)
  • .pyc 想到的一些问题
  • 2018一半小结一波
  • Angular 2 DI - IoC DI - 1
  • Angular6错误 Service: No provider for Renderer2
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Java 23种设计模式 之单例模式 7种实现方式
  • Meteor的表单提交:Form
  • Sublime text 3 3103 注册码
  • yii2权限控制rbac之rule详细讲解
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 对象管理器(defineProperty)学习笔记
  • 回顾 Swift 多平台移植进度 #2
  • 基于Android乐音识别(2)
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用putty远程连接linux
  • 数据结构java版之冒泡排序及优化
  • 小而合理的前端理论:rscss和rsjs
  • 智能网联汽车信息安全
  • Spring Batch JSON 支持
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 容器镜像
  • ​Java并发新构件之Exchanger
  • # 数论-逆元
  • #、%和$符号在OGNL表达式中经常出现
  • #if #elif #endif
  • #if和#ifdef区别
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #数学建模# 线性规划问题的Matlab求解
  • $.ajax()方法详解
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C)一些题4
  • (C语言)逆序输出字符串
  • (NSDate) 时间 (time )比较
  • (安卓)跳转应用市场APP详情页的方式
  • (八十八)VFL语言初步 - 实现布局
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐