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)
{
}
如果要多个窗口响应该变量的话统一响应就好了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)