在QT下怎么自定义信号函数

在QT下怎么自定义信号函数,第1张

首先要在QObject的子类中,其次要包含QOBJECT这个宏,再次格式是

signals:

void win();

这样就算是自定义了一个win信号了。信号可以有参数但是返回值一定为void

就是要在函数发射信号

emit mySignal(int)类似这样的句子被执行到了.信号就会被发射,与信号相关的槽就会被调用.

当然在发射信号前必须先将信号和槽函数用connect函数连接起来.

比如现在有个槽函数为

void mySlot(int a)

{

}

并且已经与mySignal(int) 连接起来了

当程序在某个地方执行到 emit mySignal(4),这样类型的句子时mySlot()就会被调用.4就被当成参数传递给了mySlot(int).就好像直接调用了mySlot(4)一样.

最好不用全局变量来做

举个栗子:

.h

class:

QString xx;

signals: void pushdata(QString da)

.cpp

//构造函数

connect(this,signal(pushdata(QString),"你要响应的窗口",slot(getdata(QString )));

void changedata()

{

//当发生变化就发送信号

emit pushdata(xxx);

}

其它窗口

.h

solt:void getdata(QString s)

.cpp

void getdata(QString s)

{

}

如果要多个窗口响应该变量的话统一响应就好了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11684280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存