引用orochi717的話:
……
對于QT,其實也是一個不錯的選擇。Linux,C++寫界面基本上都是用它。這個東西是跨平臺的。手機上也有。
問題就是這個東西到底免費還是不免費誰的不知道(linux上是免費的,我的是windows)。他又插件直接集成進VS2005,2008,然后想MFC那樣花界面。如果熟悉,開發(fā)效率跟MFC是一樣的。網(wǎng)上我以前找過,還是有不少的,畢竟這個東西也很久之前就開發(fā)出來了。 問題是這個很難招到這樣的人才。得靠自己去培養(yǎng)。
……
對于QT的描述,我不認同仁兄的看法。
首先,QT有商業(yè)版本和開源版本。被NOKIA收購后,開源版本使用的協(xié)議是LGPL,就是說,你把QT當作是一個庫,你不修改庫只是調(diào)用庫的話,是免費的,而且你的代碼不需要開源,只有針對QT庫的改動部分才需要開源,所以,LGPL這個協(xié)議是很適合開源庫的商業(yè)用途的。
其次,使用QT開發(fā)標準GUI界面,比MFC的開發(fā)效率至少高一個數(shù)量級。因為QT庫比MFC龐大很多,而且QT的許多機制比MFC先進很多。如果認為QT僅僅是一個跨平臺界面庫,那就小看它了。我要說的是,它不但是一個通用的跨平臺的面向?qū)ο蟮膽贸绦蚪涌趲欤ò℅UI、數(shù)據(jù)庫、網(wǎng)絡、多線程、XML、數(shù)據(jù)容器和算法等,常用的編程資源都有封裝,就是說,這些都可以跨平臺,而不僅僅是界面),更是一種C++語言的擴展,一種編程平臺和應用程序框架。信號和槽的機制簡化了對象之間的通信,比MFC的消息映射直觀多了;界面的布局管理機制使開發(fā)人員可以很輕松地編出優(yōu)雅的窗體;界面語言翻譯機制也很方便實用;QObject容器管理可以看到Qt在內(nèi)存管理方面的努力;擴展的foreach循環(huán)結(jié)構(gòu)也向現(xiàn)代語言靠攏;QT在界面層多封裝了一層QStyle,開發(fā)者甚至可以使用CSS定制出一套界面來……如果僅僅是開發(fā)標準的GUI(使用通用的控件),開發(fā)效率會很高,接近于.NET窗口編程。
第三,QT自帶的控件庫比MFC豐富多了,而且還有很多擴展庫和第三方的控件庫,同樣是LGPL開源的。QT提供了VS各個版本的插件,因此在VS上開發(fā)QT程序比使用其它UI庫方便很多。
第四,運行效率問題。QT使用了很多高級機制,使它的效率確實比MFC。比如,QT在界面層多封裝了一層QT樣式,在運行時可以使用不同風格的樣式,即類似于換膚功能(不同的是,它由QT框架直接提供)。所以執(zhí)行效率比不上原生操作系統(tǒng)的界面庫(如MFC、wxWidgets等)。但是,QT界面庫的效率還是比WPF、.Net、Java高幾個數(shù)量級的,畢竟QT開發(fā)出來的是機器碼,不是虛擬機或解釋程序可以比擬的。
第五,程序大小的問題。QT庫的確很大,最基本的兩個動態(tài)庫文件,QtCore4.dll有2M多,QtGui4.dll有7M多(4.6.2),所以在發(fā)布軟件的時候,還要帶上這些動態(tài)庫文件。當然,使用QT靜態(tài)鏈接庫要好一點。至于使用靜態(tài)鏈接好,還是使用動態(tài)鏈接好,這里我不加討論,沒有最好,只有最適合的(MFC也有這個問題)。
第六,跨平臺問題??缙脚_的確很誘人,尤其是做嵌入式設備的。樓主的項目是什么我不了解,因此這里不妄加評論跨平臺問題。
第七,人才問題和培訓問題。在中國,MFC/Win32開發(fā)人員是最多的(不談虛擬機平臺編程),因為學校學的就是這個。而會QT的真的很少。不過鑒于Nokia的大力支持和開源為LGPL的手段,我相信會QT的會越來越多。QT的學習也不會想像中的難,畢竟它只是一個庫(應用程序框架)而已,上手不會太難,不會比MFC久。
第八,幫助資源問題。QT的資源很豐富,其自帶的Assistant相當于微軟的MSDN,各個接口和編輯元素的說明都很詳細,不過都是英文的,跟MFC一樣。網(wǎng)上QT社區(qū)也不少。畢竟,QT比MFC,甚至比Windows還年長!
最后,聲明一下,我不是QT的槍手。程序員無槍手。他們都很純樸。我們公司仍然在使用MFC,但是嵌入式設備裝上一個正版Windows XPE,畢竟太奢侈了。另外用MFC做界面真的很痛苦,我們公司的好幾個項目都在向QT轉(zhuǎn)型。在界面庫選型上,我們也花了不少時間,從開源的wxWidgets,到商業(yè)的一些大大小小的界面庫,最后選中QT。
轉(zhuǎn)自:http://blog.csdn.net/flyoxs/article/details/5639611