Qt自定义控件封装

本文介绍了如何在Qt环境中创建一个自定义控件,将QSpinBox和QSlider结合,实现两者值的同步更新。通过信号和槽机制连接部件,确保当QSpinBox的值改变时QSlider的值会相应调整,反之亦然。此外,还添加了两个按钮,一个用于获取当前值,一个用于设置QSpinBox和QSlider的值为50,展示了如何在主窗口中与自定义控件进行交互。
摘要由CSDN通过智能技术生成

自定义控件封装

样例效果:

在这里插入图片描述

描述:

  • 部件QSpinBox和QSlider组合,改变其中一个的值,另一个随之改变
  • 添加按钮快速获取或设置组合的值

部件组合

  1. 新建项目,添加新建项Qt——>Qt设计师界面类——>选择界面模板(widget)——>命名类名,完成

在这里插入图片描述
2. 进入新添加模板的ui设计界面,向其中添加部件并布局

  1. 进入主窗口ui设计界面,添加widget部件点击右键——>提升为——>输入提升的类名称——>提升
    在这里插入图片描述

利用信号和槽联系组合内的部件

在组合类的源文件中建立二者的connect联系

// QSpinBox的值变化,则QSlider随之变化
// QSpinBox::valueChanged有重构,直接添加到connect中编译器将无法判断该调用哪一个
void (QSpinBox:: * spSingal)(int) = &QSpinBox::valueChanged;
connect(ui->spinBox,spSingal,ui->horizontalSlider,&QSlider::setValue);

// QSlider划动,QSpinBox的值随之改变
connect(ui->horizontalSlider,&QSlider::valuChanged,ui->spinBox,&QSpinBox::setValue);

组合类提供改变值和获取值的接口

// 修改值
void SmallWidget::setNum(int num) {
    ui->spinBox->setValue(num);
}

// 获取当前值
int SmallWidget::getNum() {
    return ui->spinBox->value();
}

添加快捷按钮

主窗口中添加按钮,并将建立connect联系

// 点击按钮时获取组合部件当前的值
connect(ui->pushButton,&QPushButton::clicked,[=](){
    qDebug() << ui->widget->getNum();
});

// 点击按钮时将组合部件值设置为50
connect(ui->pushButton_2,&QPushButton::clicked,[=](){
    ui->widget->setNum(50);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值