当我声明时,我的班级发出信号
signal: void someSignal();
有没有办法 someSignal 将有实现?如果我尝试写类似
void someClass::someSignal()
{//something here
}
我收到链接错误。所以它是在某个地方实现的,据我所知它是由 moc-compiler 完成的。那么我是否可以通过某种方式来编写信号的实现?
QT 文档说:
信号由 moc 自动生成,不得在 .cpp 文件中实现
因此,没有办法实现信号。事实上,您只需要呼叫信号。如果您想将信号用作通用功能,只需声明并实现新功能:)
信号为您的类中的函数提供原型。当您将信号连接到插槽时,调用emit someSignal()
将调用与其连接的插槽。所以没有必要定义你的信号应该做什么,因为连接的插槽会这样做。
苏龙仔
好的,但请记住,插槽必须具有与信号相同的参数,而不是 return(void),即:
发出 someSignal(int pram1, int pram2) ------ 信号
void someSignal(int pram1, int pram2) ------ 插槽
问候
不,你不需要这样做,你只需要声明你的信号并使用它发出它
emit someSignal(pram1,pram2);