我知道它们可以一起使用,但我想知道是否可以在程序的 Qt 部分(小部件等)中用 Boost.Signal 替换 Qt 的信号和插槽机制。
有人试过吗?有什么陷阱吗?
假设我不使用任何其他 MOC 功能并用 boost.signal 替换信号/插槽,是否可以完全不使用 moc?
我考虑将它用于我的一个项目。根据项目的不同,可能会困扰您的一个方面是Qt Designer的使用。它在下面Qt-Designer
为其 GUI 连接创建信号槽。因此,如果您碰巧使用了设计器,您最终会得到同时具有signals-slots
和boost::signals
. 将它们一起使用会出现一些问题,请参阅此博客。尽管他们可以一起工作,但我会避免混合这两种方法。
但我面临的最大问题是它boost::signals
不是线程安全的,而 Qtsignal-slot
是!所以这对我来说很容易决定,因为我的项目是多线程的。
您可以从此PDF中获得boost和Qt所采用方法的相对优缺点。Page-11
高温高压
我不认为这是你想做的事情。Qt 的信号深度集成在框架中,以及它们是如何生成和处理的。不要浪费你的时间:)