我打算使用Qt 4框架(需要跨平台GUI)开始一个C++项目。我从朋友和网上听到了关于Boost库的很多好评。在阅读了两个库的资料后,我想在深入研究之前先问一个表面问题:这两个开发“系统”是互斥的吗?
我的初步搜索和阅读显示,在信号处理、自定义构建系统和其他低层原语等方面存在一些重叠。
在同一个项目中同时使用它们是否有意义?
是的,这是完全合理的。通常情况下,我更喜欢使用Boost/标准库函数而不是它们的Qt替代品。
这会使代码更容易移植到下一个框架上。
这也会让新的非Qt程序员更容易地了解和掌握。
Boost拥有一些很棒的功能,而且正在不断增加中。
注:字符串与小部件之间的转换可能是主要的例外 - 在GUI内部,我会使用Qt字符串来避免混乱的类型转换。
特别是在跨平台的情况下,你应该拥有一个良好的分层架构,将业务逻辑和数据访问尽可能地与GUI分离。在这种情况下,编写应用程序的后端时使用Boost会很有意义,只在必要的粘合代码中进行Qt前端的操作。
如果你的“引擎”与你选择的GUI分开,以后你可以轻松地将Qt替换为其他东西(例如本地库),减少工作量。