0

当我声明时,我的班级发出信号

signal: void someSignal();

有没有办法 someSignal 将有实现?如果我尝试写类似

void someClass::someSignal()
{//something here
}    

我收到链接错误。所以它是在某个地方实现的,据我所知它是由 moc-compiler 完成的。那么我是否可以通过某种方式来编写信号的实现?

4

4 回答 4

4

QT 文档说:

信号由 moc 自动生成,不得在 .cpp 文件中实现

因此,没有办法实现信号。事实上,您只需要呼叫信号。如果您想将信号用作通用功能,只需声明并实现新功能:)

于 2013-01-06T18:39:55.937 回答
0

信号为您的类中的函数提供原型。当您将信号连接到插槽时,调用emit someSignal()将调用与其连接的插槽。所以没有必要定义你的信号应该做什么,因为连接的插槽会这样做。

苏龙仔

于 2013-01-07T07:42:39.503 回答
0

好的,但请记住,插槽必须具有与信号相同的参数,而不是 return(void),即:

发出 someSignal(int pram1, int pram2) ------ 信号

void someSignal(int pram1, int pram2) ------ 插槽

问候

于 2013-01-07T06:29:25.810 回答
0

不,你不需要这样做,你只需要声明你的信号并使用它发出它

 emit someSignal(pram1,pram2);
于 2013-01-06T18:39:18.400 回答