Qt是一個(gè)功能非常完善的c++跨平臺圖形庫,其實(shí)與其說圖形庫倒不如說它是一個(gè)與MFC類似的應(yīng)用框架。Qt本身就是使用c++語言實(shí)現(xiàn)。 QT理論上是跨平臺的,MFC只是windows下的架構(gòu)。 QT是一個(gè)完全的C++程序開發(fā)框架,包含類庫和跨平臺國際化開發(fā)工具。QT API和開發(fā)工具對所有支持平臺都是一致的,從而可以進(jìn)行獨(dú)立于平臺的程序開發(fā)和配置。使得跨平臺軟件編程直觀、簡易和方便。 QT是一種c++語言的方言。 因?yàn)樗褂米约旱念A(yù)處理器處理代碼后,才能用C++編譯器編譯代碼。 qt基于c++語言實(shí)現(xiàn),c++本身只是為開發(fā)人員提供了一種編程手段,而Qt正是利用了它實(shí)現(xiàn)了一個(gè)半成品的應(yīng)用框架。c++語言自身實(shí)現(xiàn)非常復(fù)雜,比如多態(tài)、繼承、虛函數(shù)等語言特性的實(shí)現(xiàn)就較為底層,只能由天才級的it人士完成。而Qt相對c++而言屬于高層次的應(yīng)用,普通的Qt開發(fā)人員做的應(yīng)用程序相對Qt而言又高了一個(gè)層此。 qt里的類都是由c++寫的,你用qt編程的時(shí)候和c++不同點(diǎn)在于:很大一部分和信號與槽有關(guān)的c++代碼不用你自己來寫,是由qt sdk提供的一個(gè)程序自動(dòng)生成的。 總之無論qt自動(dòng)生成的代碼還是你寫的調(diào)用qt的代碼或者qt類庫底層的代碼都是c++。qt開源。 QT是一個(gè)高層的類庫,OpenGL是底層的庫。 如果相互調(diào)用的話,是QT調(diào)用OpenGL。 OpenGL只是負(fù)責(zé)畫出來一個(gè)圖像,可能會(huì)細(xì)節(jié)到設(shè)計(jì)出來具體哪一個(gè)像素怎么畫出來的,至于其他的事情完全不管。 QT則會(huì)做更多的事情,比如畫出一個(gè)完整的對話框,并且替你把對話框的一些點(diǎn)擊事件、關(guān)閉事件處理一下。而且QT畫東西的時(shí)候,它并不一定是自己直接畫,多半會(huì)通過調(diào)用OpenGL等庫來畫出來。 用木頭蓋房子來打比方的話,OpenGL負(fù)責(zé)幫你把樹種出來,保證木材是結(jié)實(shí)耐用的。而QT幫你把木材加工好,做成一個(gè)木門,保證木門能夠正確地安裝和使用。 你需要的就是把這個(gè)做好的木門安裝到你的房子上。 C++中的類,接口在QT中是可以使用的,和在C++中一樣 C++是一個(gè)語言,而Qt是一個(gè)圖形界面庫(GUI) 除去界面相關(guān)操作,實(shí)際的編程回歸c++中來。
|