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

Is it a way to make Qt signal with realization?

本文关键字:一种 方法 Qt 实现 信号      更新时间:2023-10-16

当我声明in时,我的类信号

signal: void someSignal();

没有办法实现某些信号?如果我想写

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

我收到链接错误。所以它是在某处实现的,据我所知,它是由moc编译器完成的。这是一种写出信号实现的方法吗?

QT文档说:

信号由moc自动生成,不能在.cpp文件

中实现

因此,没有办法实现信号。事实上,你只需要呼叫信号。如果你想使用信号作为公共函数,只需声明和实现新的函数:)

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

so long zai

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

发出它
 emit someSignal(pram1,pram2);

可以,但请记住插槽必须具有与信号和相同的参数,并且不能返回(void),即:

emit someSignal(int pram1, int pram2) ------ signal

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

问候

相关文章: