QT5信号函数的绑定方式

1.widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
private:
    void init_slots();
private slots:
    void on_btn_cal_clicked();
    void on_btn_dec_clicked();
    void on_btn_bin_clicked();
    void on_btn_hex_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

2.widget.cpp

#include "widget.h"
#include "ui_widget.h"

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

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

void Widget::init_slots()
{
    connect(ui->btnCal,&QPushButton::clicked,this,&Widget::on_btn_cal_clicked);

    void (QSpinBox::*valueChangedFuncInt)(int) = &QSpinBox::valueChanged;
    connect(ui->spinNum,valueChangedFuncInt,this,&Widget::on_btn_cal_clicked);

    void (QDoubleSpinBox:: *spinPriceFunc)(double) = &QDoubleSpinBox::valueChanged;
    connect(ui->spinPrice,spinPriceFunc,this,&Widget::on_btn_cal_clicked);


    connect(ui->btnDec,&QPushButton::clicked,this,&Widget::on_btn_dec_clicked);
    connect(ui->btnBin,&QPushButton::clicked,this,&Widget::on_btn_bin_clicked);
    connect(ui->btnHex,&QPushButton::clicked,this,&Widget::on_btn_hex_clicked);


    connect(ui->spinDec,valueChangedFuncInt,this,&Widget::on_btn_dec_clicked);
    connect(ui->spinBin,valueChangedFuncInt,this,&Widget::on_btn_bin_clicked);
    connect(ui->spinHex,valueChangedFuncInt,this,&Widget::on_btn_hex_clicked);

}

void Widget::on_btn_cal_clicked()
{
    int num = ui->spinNum->value();
    float price = ui->spinPrice->value();
    float total = num * price;
    ui->spinTotal->setValue(total);
}

void Widget::on_btn_dec_clicked()
{
    int num = ui->spinDec->value();
    ui->spinBin->setValue(num);
    ui->spinHex->setValue(num);
}

void Widget::on_btn_bin_clicked()
{
    int num = ui->spinBin->value();
    ui->spinDec->setValue(num);
    ui->spinHex->setValue(num);
}

void Widget::on_btn_hex_clicked()
{
    int num = ui->spinHex->value();
    ui->spinBin->setValue(num);
    ui->spinDec->setValue(num);
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 23:10:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 23:10:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 23:10:03       87 阅读
  4. Python语言-面向对象

    2024-03-21 23:10:03       96 阅读

热门阅读

  1. SpringWeb

    SpringWeb

    2024-03-21 23:10:03      35 阅读
  2. 笔记:Mysql 主从搭建

    2024-03-21 23:10:03       42 阅读
  3. 椋鸟数据结构笔记#1:数据结构、顺序表

    2024-03-21 23:10:03       45 阅读
  4. SpringBoot注解

    2024-03-21 23:10:03       50 阅读
  5. 蓝桥杯算法基础(28)11道关于字符串的小题

    2024-03-21 23:10:03       36 阅读
  6. rocketmq 4.9.6安装

    2024-03-21 23:10:03       48 阅读
  7. 手势追踪技术在HTC VIVE中的应用与实现

    2024-03-21 23:10:03       46 阅读
  8. 7 Internet基础(2)

    2024-03-21 23:10:03       44 阅读