Qt中的信号和插槽究竟是什么?

Ton*_*ony 4 c++ qt portability qt4 signals-slots

我知道它们在概念上是如何工作的,但是Qt框架中的信号和插槽是如何实现的?Qt Creator将它们视为关键字,但它们只是一组宏,还是在编译这些源文件之前需要的特殊预处理器?

换句话说,如果我在代码中使用Qt的信号/插槽功能,我可以在任何C++编译器上轻松编译吗?

Jam*_*lis 9

Qt的许多功能,包括信号,都需要使用Qt元对象编译器(MOC)对源进行预处理.

如果您使用Qt的信号功能,您可以在Qt支持的任何编译器和平台上编译源代码.如果你需要在Qt不支持的平台上编译,你可能会运气不好或至少在很多有趣的集成工作中(当然,任何库或框架都是如此).

如果您正在寻找跨平台信号实现,您可能还会考虑Boost.Signals.