5、信号,带参数

信号,带参数,可以传递参数给连接的槽函数。信号、槽函数类型要一致。

新建项目,QWidget,不勾选ui

/*mywidget.h代码*/
#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include <QPushButton> //按钮
#include <QDebug> //打印

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    MyWidget(QWidget *parent = 0);
    ~MyWidget();
    void sendSignal(); //自定义的函数,发送信号
    void MySlot(int a,QString str); //接收信号的槽函数
signals:
    void MySignal(int a,QString str);//信号与槽相对,信号传参给槽函数

private:
    QPushButton b; //按钮
};

#endif // MYWIDGET_H
/*mywidget.cpp代码*/
#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    b.setText("打印参数");
    b.setParent(this); //按钮放在本窗体上
    connect(&b,&QPushButton::pressed,this,&MyWidget::sendSignal);
    connect(this,&MyWidget::MySignal,this,&MyWidget::MySlot);
}
void MyWidget::sendSignal()
{
    emit MySignal(520,"这不是节日!");//发送信号,传参给槽函数
}
void MyWidget::MySlot(int a,QString str)
{
    qDebug()<<a<<str.toUtf8().data();//注意字符串的输出方式,qDebug()类似cout
}

MyWidget::~MyWidget()
{

}

 

转载于:https://www.cnblogs.com/xixixing/p/10902321.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值