使用Boost.Signal而不是Qt的信号?没有moc吗?

时间:2010-01-19 10:11:04

标签: c++ qt boost moc

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

有人试过吗?任何陷阱?

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

2 个答案:

答案 0 :(得分:4)

我认为这是我的一个项目。根据项目的不同,可能会打扰您的一个方面是使用Qt DesignerQt-Designer为其GUI连接创建了下面的信号槽。因此,如果您碰巧使用设计器,最终会得到同时包含signals-slotsboost::signals的项目。将它们一起使用存在一些问题。见this博客。虽然它们可以一起工作,但我不会混淆这两种方法。

但我遇到的最大问题是boost::signals不是线程安全的,而Qt的signal-slot是!所以这对我来说很容易做出决定,因为我的项目是多线程的。

您可以从{em> Page-11 {获取 boost Qt 所采用的方法的相对优点和缺点{3}} PDF。

HTH

答案 1 :(得分:3)

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