2008-12-11 99 views
65

我正在尋找使用Qt 4框架在C++中啓動項目(需要跨平臺GUI)。我從朋友和在線聽說過關於Boost圖書館的很棒的事情。我已經開始閱讀兩篇文章,並且在我深入之前想問一個粗略的問題:這兩個開發「系統」是相互排斥的嗎?混合Qt和Boost

我最初的搜索和閱讀顯示了信號處理,自定義構建系統和其他低級基元的一些重疊。

在同一個項目中使用它們是否合理?

回答

55

是的,它非常有意義。我通常更喜歡在可能的情況下使用boost/stdlib函數,而不是他們的Qt替代品。

它使代碼更容易移植到下一個框架。
這讓新的非Qt程序員更容易上手。
Boost有一些很棒的功能,並且一直都在增加。

注意:來自窗口小部件的字符串可能是主要的異常 - 在GUI內部,我會使用Qt字符串來保存無處不在的混亂轉換。

+30

Qt還具有很強的功能,並且也越來越多。與Boost相比,Qt有更好的(更好的)文檔(基於我的使用經驗)。有人可能會說,使用Boost會讓非Boost程序員變得更難。 – sivabudh 2010-03-04 18:56:50

+12

對於提升是正確的,但我仍然會使用std :: vector等Qt的集合類 – 2010-11-24 19:27:46

7

我們(Last.fm)一起使用它們,儘管我們只是開始這樣做,所以還沒有很好的經驗。到目前爲止一切正常:)

17

特別是因爲你要跨平臺,你應該有一個很好的分層架構,儘可能從GUI中刪除業務邏輯和數據訪問。在這種情況下,在編寫應用程序的後端時使用Boost是有意義的,並且只需要跳轉到前端的Qt,並在膠水中完成強制轉換。

如果您的「引擎」與您的GUI選擇是分開的,那麼您將可以用最少的努力將Qt換成未來的其他東西(本地庫)。

3

與QT一起使用Boost.Signals存在潛在的問題。這些記錄在Boost.Signals FAQ中。