它是一种使Qt信号实现的方法吗?

时间:2013-01-06 18:32:34

标签: c++ qt signals

当我申报时,我的班级信号

signal: void someSignal();

someSignal无法实现吗?如果我尝试写类似

的东西
void someClass::someSignal()
{//something here
}    

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

4 个答案:

答案 0 :(得分:4)

QT文档说:

  

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

因此,没有办法实现信号。实际上,您只需要呼叫信号。 如果你想使用signal作为常用函数,只需声明并实现新函数:)

答案 1 :(得分:0)

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

发出它
 emit someSignal(pram1,pram2);

答案 2 :(得分:0)

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

发出someSignal(int pram1,int pram2)------ signal

void someSignal(int pram1,int pram2)------ slot

问候

答案 3 :(得分:0)

信号为您班级中的某个功能提供原型。 当您将信号连接到插槽时,emit someSignal()的呼叫将呼叫与其连接的插槽。 所以不需要定义你的信号应该做什么,因为连接的插槽会这样做。

soo long zai