混合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是可用的,它们是线程安全的。