QT自定义控件封装

1.创建项目及添加文件

选择Widget 

填写类名 

生成.h  .cpp   .ui文件 

 2.ui设计

在smallWidget.ui中拖动SpinBox,horizontalSlider到窗口中,调整窗口大小

 在widget.ui中,拖一个widget到窗口中,调整大小;右击widget,点击提升为,在提升的类名称中输入smallWidget,勾选全局包含,点击添加,此时可在红色箭头处看见添加的内容

3.代码

 在Qt助手中搜索SpinBox的信号函数

搜索QSlider,发现该类没有槽函数,于是找他的父类:QAbstractSlider

在smallWidget.cpp中,实现SpinBox和horizontalSlider绑定

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

    //QSinBox变化,QSlider跟着滑动
    //由于QSpinBox::setValue有重载,所以定义函数指针
    void(QSpinBox:: *spSignal)(int) =  &QSpinBox::valueChanged;
    connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);
    //QSlider跟着滑动,QSinBox变化,
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}

在smallWidget.h中 定义setNum(),getNum()接口

#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 num);
    //获取数字
    int getNum();
private:
    Ui::smallWidget *ui;
};

#endif // SMALLWIDGET_H

在smallWidget.h中 实现setNum(),getNum()接口

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

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

    //QSinBox变化,QSlider跟着滑动
    //由于QSpinBox::setValue有重载,所以定义函数指针
    void(QSpinBox:: *spSignal)(int) =  &QSpinBox::valueChanged;
    connect(ui->spinBox,spSignal,ui->horizontalSlider,&QSlider::setValue);
    //QSlider跟着滑动,QSinBox变化,
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}

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

void smallWidget::setNum(int num){
    ui->spinBox->setValue(num);
}
int smallWidget::getNum(){
    return ui->spinBox->value();
}

在widget.c中 实现SpinBox设置和获取

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //点击getNum,获取当前SpinBox
    connect(ui->pushButton_get,&QPushButton::clicked,[=](){
        qDebug()<<"当前值为:"<<ui->widget->getNum();
    });
    //点击setNum,设置SpinBox数字
    connect(ui->pushButton_set,&QPushButton::clicked,[=](){
        ui->widget->setNum(50);
    });
}

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


 最后测试:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt定义件大全Designer源码是一个包含了多种自定义件的全套源码,它主要用于在Qt设计师中使用。Qt是一个跨平台的C++应用程序开发框架,提供了丰富的图形界面件,但有时候我们可能需要自定义一些特殊的件来满足我们的需求。 Qt定义件大全Designer源码包含了很多常用的自定义件,如自定义按钮、进度条、滑块、验证码输入框等等。这些件的设计和实现已经封装好,我们只需要将源码添加到我们的项目中,然后在Qt设计师中直接使用即可。 使用Qt定义件大全Designer源码有以下几个优点: 1.提供了丰富的自定义件选择:Qt定义件大全Designer源码包含了多样化的件,可以满足不同项目的需求。无论是一些简单的件,还是一些复杂的件,我们都可以找到合适的选择。 2.减少开发时间和工作量:使用源码中的自定义件可以减少我们从头开始设计和实现的工作,节省了大量的开发时间和工作量。我们只需要将源码添加到项目中并正确配置,就可以直接在设计师中使用这些自定义件。 3.提高应用程序的美观性和用户体验:Qt定义件大全Designer源码中的件经过精心设计和实现,具有良好的界面效果和用户交互体验。使用这些自定义件可以为我们的应用程序提供更加美观和友好的界面。 总之,Qt定义件大全Designer源码是一个提供了多种自定义件的全套源码,使用它可以快速、方便地实现各种自定义件,提高应用程序的开发效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值