Qt自定义信号和槽

转载自http://blog.csdn.net/crazyman2010/article/details/6055863

//A.h//

#ifndefA_H

#define A_H
#include <QObject>
#include<QDebug>
class A :public QObject
 
{
    Q_OBJECT// 必需的
 
public:
    void sendselfsignal(void)// 发送自定义信号
    {
        qDebug("object a send signal s");
        emit s();
    }
signals: //自定义信号, 如果要自定义保护信号, 就在protected: 后声明.
//自定义信号只需要在这里声明, 然后将槽连接到信号即可,无需实现信号函数.信号函数与槽函数的返回值类型在任何时候都可以不同; 而且如果不关心信号传递下来的参数, 信号函数与槽函数的参数列表也可以不相同, 但是如果要访问信号传递下来的任何参数时, 信号函数与槽函数的参数列表必须相同.
    void s();// 自定义信号
};
 
#endif // A_H
//B.h//
#ifndef B_H
#define B_H
#include"A.h"
class B :public QObject//:public A
{
    Q_OBJECT// 必需的
public:
    B(A* pa)
    {
        connect(pa,SIGNAL(s()),this,SLOT(recvs()));// 关联信号和槽
    }
public slots:
    void recvs()// 自定义槽
    {
        qDebug("in object b,recved s");
    }
};
#endif // B_H
 
//main.cpp//
#include <QtCore/QCoreApplication>
#include"A.h"
#include"B.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    A test;
    B b(&test);
    test.sendselfsignal();
    return a.exec();
}
运行结果如下图所示
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值