混合Qt和Boost

时间:2008-12-11 17:18:01

标签: c++ qt boost

我正在考虑使用Qt 4框架在C ++中启动项目(需要跨平台的GUI)。我从朋友和网上听过Boost图书馆的好消息。我已经开始阅读这两篇文章,并且在我太深入之前想问一个粗略的问题:这两个开发“系统”是否相互排斥?

我的初始搜索和阅读显示了信号处理,自定义构建系统和其他低级原语中的一些重叠。

在同一个项目中使用它们是否有意义?

6 个答案:

答案 0 :(得分:54)

是的,这很有道理。我通常更喜欢在可能的情况下使用boost / stdlib函数而不是Qt替代函数。

它使代码更容易移植到下一个框架 这使得新的非Qt程序员更容易加快速度 Boost有一些很棒的功能,并且一直在增加。

注意:来自/来自小部件的字符串可能是主要的例外 - 在GUI中我会使用Qt字符串来节省混乱的演员阵容。

答案 1 :(得分:31)

This paper非常体面地比较QT中的signal slots机制和Boost::Signal机制。对于那些对这种混合有点好奇的人来说,这是必读的。

答案 2 :(得分:17)

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

如果您的“引擎”与您的GUI选择分开,您将能够轻松地将Qt替换为未来的其他内容(可能是本地库)。

答案 3 :(得分:7)

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

答案 4 :(得分:3)

使用Boost.Signals和QT存在潜在问题。这些内容记录在Boost.Signals FAQ

答案 5 :(得分:3)

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