14

我知道它们可以一起使用,但我想知道是否可以在程序的 Qt 部分(小部件等)中用 Boost.Signal 替换 Qt 的信号和插槽机制。

有人试过吗?有什么陷阱吗?

假设我不使用任何其他 MOC 功能并用 boost.signal 替换信号/插槽,是否可以完全不使用 moc?

4

2 回答 2

4

我考虑将它用于我的一个项目。根据项目的不同,可能会困扰您的一个方面是Qt Designer的使用。它在下面Qt-Designer为其 GUI 连接创建信号槽。因此,如果您碰巧使用了设计器,您最终会得到同时具有signals-slotsboost::signals. 将它们一起使用会出现一些问题,请参阅博客。尽管他们可以一起工作,但我会避免混合这两种方法。

但我面临的最大问题是它boost::signals不是线程安全的,而 Qtsignal-slot是!所以这对我来说很容易决定,因为我的项目是多线程的。

您可以从此PDF中获得boostQt所采用方法的相对优缺点。Page-11

高温高压

于 2010-01-19T11:20:04.280 回答
3

我不认为这是你想做的事情。Qt 的信号深度集成在框架中,以及它们是如何生成和处理的。不要浪费你的时间:)

于 2010-01-19T11:18:07.637 回答