混合Qt和Boost

我正在研究使用Qt 4框架以C ++开始一个项目(需要一个跨平台的GUI)。 我从朋友和网上听说过关于Boost库的很棒的东西。 我已经开始阅读这两本书了,想深入问一个粗略的问题:这两个发展“系统”是相互排斥的吗?

我最初的search和阅读显示在信号处理,自定义构build系统和其他低级原语中有一些重叠。

在同一个项目中使用它们是否合理?

是的,这是非常有意义的。 我通常更喜欢使用boost / stdlib函数,而不是他们的Qt替代品。

它使代码更容易移植到下一个框架。
这让新的非Qt程序员更容易上手。
Boost有一些很棒的function,并且一直在变得越来越好。

注意:来自窗口小部件的string可能是主要的exception – 在GUI内部,我将使用Qtstring来保存各处的混乱转换。

本文比较QT和Boost :: Signal中的 信号时隙机制。 对于那些对这种混合有点好奇的人来说,这是必读的。

特别是因为你要跨平台,你应该有一个很好的分层架构,业务逻辑和数据访问尽可能从GUI中删除。 在这种情况下,在编写应用程序的后端时使用Boost是有意义的,并且只需要跳转到前端的Qt,并在胶水中完成强制转换。

如果你的“引擎”与GUI的select是分开的,那么你将能够用最less的努力将Qt换成未来的其他东西(本地库)。

我们(Last.fm)一起使用它们,尽pipe我们刚刚开始这样做,所以还没有很好的经验。 到目前为止,一切都很好,但:)

与QT一起使用Boost.Signals存在潜在的问题。 这些都logging在Boost.Signals常见问题中 。

考虑到Boost Signals2是可用的,它们是线程安全的。