2009-08-09 19 views
26

我對學習Qt感興趣。我對C++,STL和Boost很滿意。我非常喜歡STL/Boost風格,只要我能夠在uni項目中使用它們就可以使用它們。但是,我總是想念GUI。在我看來,Qt似乎是最好的解決方案。 Qt確實有很好的容器集合,但我非常熟悉STL/Boost的東西。Qt是否可以與STL和Boost合作?

在學習Qt並與STL/Boost並行使用時應該注意什麼?

回答

32

是的,Qt對Boost和STL都很好。大多數STL功能都在Qt中重複使用,以確保所有支持Qt的平臺都支持這些功能。然而,沒有任何東西禁止您使用Qt缺乏的Qt構造或功能的STL/boost對應。

雖然Qt有它自己的字符串,容器和算法對象,但它也包含很多與STL兼容的函數。例如,QString可以轉換爲std :: string,QVector可以與std :: for_each一起使用。 Qt還包含一些與boost相重疊的功能,如QPointer(與std:auto_ptr和boost:shared_ptr進行比較/對比)。

Creating Custom Qt Types文章可能會提供一些有關使用高級功能與升壓對象(如transmitting custom objects between threads with queued connections)的深入見解。

參見:

11

的Qt確實工作得相當好一起STL,但像任何框架他們已經不得不更換一些STL結構出於需要(在只有你會發現自己被迫使用的是string/unicode)。來自Boost的一切都很好用 - 實際上它是一對可以一起使用的工具包,但是您需要小心boost :: signals,因爲Qt也有一個信號實現並且名稱可以重疊。 Boost在FAQ中涵蓋了這一點,並且還有關於奇趣科技網站的一些信息以及如何避免該問題。

+2

Qt文檔還解決了這裏的信號/插槽問題:http://doc.trolltech.com/4.5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots – 2009-08-09 04:28:23

相關問題