qt的信号与槽可以用自定义函数吗

 我来答
nigoole
2016-12-24 · TA获得超过1369个赞
知道小有建树答主
回答量:675
采纳率:71%
帮助的人:443万
展开全部

可以的;前面需要添加特定的信号槽标识符

class MyClass :  public QObject {
    // 这个宏一定要添加,否则无法使用信号槽
    Q_OBJECT
public:
    MyClass(){} 
    void publicTestFunc() { emit signalTest(110);}
//-- 下面函数是自动的信号函数,无实体,定义即可  --//
signals:
    void signalTest(int nCnt); // 可带参数,可不带
//-- 下面函数是自定义的槽函数,需要写实现方法 --//
slots:
    void sltTestFunc(int nCnt) {
        qDebug() << "connect the signal: " << nCnt;
    }
};

// 然后使用
MyClass *test1 = new MyClass();
MyClass *test2 = new MyClass();

connect(test1, SIGNAL(signalTest(int)), test2, SLOT(sltTestFunc(int)));
// 然后用test1发送信号,test2接收
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式