2013-10-06 57 views
0

我一直在尋找QT,並且看到它會如何理想:代碼一次,無處不在,甚至是一些拖放。 (Scratch,僅適用於成年人:D)無論如何,它是否是標準QT格式的託管,非託管或C++/CLI?我習慣於本地/非託管C++代碼,而MSVC C++使得一切都比實際需要的複雜,我只能部署到一個平臺。然而,作爲一個老式的C++唯一編碼器,我決定如果我還必須學習託管代碼,我會反對使用QT。我意識到,我可能有一天需要學習管理,但現在如果我能避免它,它會爲我節省很多時間。QT是否使用託管代碼?

+1

是什麼讓你認爲Qt依賴於CLI/CLR或託管代碼? (答案是否定的 - 你不需要觸摸C++/CLI來使用Qt) – us2012

+0

@ us2012我只是雙重檢查,因爲我正在尋找,我找不到任何暗示有OR的東西沒有。 –

回答

6

Qt是用於使用C++或QML,一個CSS &的JavaScript等語言的開發 一個跨平臺應用程序和用戶界面框架。 Qt Creator是支持Qt IDE的 。

您可以使用常見的C++語法來的Qt +代碼你犯了一個使用Qt類,Qt的宏和Qt元調用機制的過程中,但還是這僅僅是C++。 Qt不依賴於C++/CLI或其他專有框架。

1

「託管」,因爲你的意思是,沒有Qt沒有管理(沒有CLI或CLR或什麼)。 Qt只是C++。

但是,它確實管理像智能指針這樣的對象,並且可能首先會引起你的注意。當你創建一個窗口並在那裏放置小部件時,這些小部件將成爲窗口的子項,當你刪除該窗口時,Qt會自動爲你刪除這些小部件。

這與使用智能指針非常相似,儘管Qt並沒有在這種情況下使用這種指針。實際上,小部件本身就是智能指針。

+0

更具體地說,它是你指的QObject,並且說它是一個智能指針並不是很準確,更像是一個父母,它簡單地管理它的孩子的記憶,這是指針,而不是父母本身。 – johnbakers

+0

確實,'QObject'管理着樹,'QWidget'從'QObject'派生。另外,當一個對象被刪除時,'QPointer'也會自動設置爲NULL。所以你可以有許多'QPointer'變量給一個對象,當這個對象被刪除時,所有這些'QPointer'都被設置爲NULL。 –