{eval=Array;=+count(Array);}
回答問題之前,先說下結(jié)論,其實在C++領(lǐng)域,Qt算是很不錯了。玩C++的,如果沒有聽說過Qt,那么我可能要懷疑你的專業(yè)水平了。有GUI的地方都有Qt,有嵌入式的地方一般也有它,金融、工業(yè)、電力、視頻監(jiān)控等行業(yè)也有它。那為什么會給人以Qt框架不是很流行的錯覺呢?
1、Qt在C++領(lǐng)域已經(jīng)相當(dāng)火了,但架不住C++本身不火,現(xiàn)在是互聯(lián)網(wǎng)的天下……
2、Qt沒有個好爹。從最早的TrollTech,到后來Nokia,再到Digia,現(xiàn)在甚至獨立出來自己上市了。
3、授權(quán)協(xié)議,目前Qt是GPL和LGPL,這個就不用我詳細(xì)解釋了吧,動不動就要開源。除非買企業(yè)版解除這個限制,但是企業(yè)版又意味著一大筆開銷。
4、編譯后打包的東西太大太大。
最后,附一張使用Qt的QSS基礎(chǔ)繪制的PC客戶端界面換膚效果圖。
以上就是我的觀點,喜歡就【點個贊】吧!
Qt框架非常強(qiáng)大,但是,代碼書寫太麻煩,不適合新手。
目前有Pyqt5和pyside2是用python的代碼書寫制作GUI,雖然很強(qiáng)大,但是也只是適合老程序員,新手也還是覺得太麻煩,流行不起來。
如果只是制作簡單的GUI目前有很多其他簡單的工具,就python就有很多種方法制作小工具的GUI
C++作為一門優(yōu)秀的編程語言,也曾經(jīng)獨領(lǐng)風(fēng)騷,只是因為沒有一個統(tǒng)一的圖形庫而備受詬病,雖然曾經(jīng)有C++ Builder和MFC讓程序員眼前一亮,但是因為這些圖形庫設(shè)計的先天不足,導(dǎo)致難以學(xué)習(xí)又使用不便,并且隨著Java與C#的興起,逐漸淡出人們的視線。
同Java、C#等語言相比,C++有一個巨大的優(yōu)勢就是性能,在對性能要求較高的場景還是少不了C++身影,C++依然有很大的使用群體,所以很自然的就有人想要推出一套更好的C++的圖形庫,于是QT就應(yīng)運而生了。其實QT也是幾易其主,并最終逐漸被很多程序員認(rèn)識并使用。
那么為什么QT不是很流行呢,我認(rèn)為主要有以下幾個原因:
第一, QT依賴的編程語言C++本身式微,在最新的TOBIE編程語言排行榜上,C++的份額比Java要低很多。
第二, 多語言混合編程的興起,在早期的編程實踐中,多語言編程是一件很麻煩的事情,隨著技術(shù)的不斷進(jìn)步,混合編程已經(jīng)變得容易很多,于是C++更多的是從事幕后的工作,UI的工作則可以由其它語言完成,比如C#調(diào)用C++的庫。
第三, QT框架的核心技術(shù)是引入了信號-槽機(jī)制,以及在此基礎(chǔ)上建立的圖形庫和輔助工具,如uic, moc, rcc等,這些工具的引入增強(qiáng)了QT的功能,但是卻引入了另外一個嚴(yán)重的問題,編譯時間的增長。正常情況下C++只需要編譯一次,但是在使用了QT信號-槽機(jī)制的C++文件中,則需要先使用moc編譯生成一個中間文件,然后再編譯該中間文件,等于編譯兩次,大大增加了編譯時間。
綜上,雖然QT有一些不足,但是因為它是一套優(yōu)秀的可以跨平臺的編程框架,在加上C++語言的高效率,以及開源加持,目前依然有著廣泛的使用場景,而且使用人數(shù)還在逐年上升。
Qt不夠流行,其實一大半的原因就是因為C++。咱們程序員,肯定對C++這門語言有所耳聞,這可以說是世界上最難學(xué)的一門語言,也是最難精通的一門語言。這門語言有著最豐富的語言功能,同時也讓人痛苦的使用著尋找各種bug??梢哉f,C++這門語言,配得上世界上最優(yōu)美的贊譽,也承受著最讓人抓狂的怒火。
Qt生在CPP上,可謂是成也CPP敗也CPP。一方面, CPP強(qiáng)大的功能集合賦予了Qt豐富的功能,CPP的原生內(nèi)存操作功能也讓QT一直以高性能的姿態(tài)傲立群雄??上У氖?,現(xiàn)在已經(jīng)是托管型語言的時代了,CPP作為一門直接操作內(nèi)存的語言,學(xué)習(xí)和使用成本太高了。Java等各種帶垃圾回收的語言更加方便好用。這也很大程度上促成了QT的衰落。
更重要的一個原因就是移動互聯(lián)網(wǎng)的發(fā)展,高性能低價格的智能手機(jī)在大眾普及,這讓移動互聯(lián)網(wǎng)的流行成為了可能。因此安卓、iOS這些編寫手機(jī)app的框架更加流行,QT也風(fēng)光不再。不過就算是現(xiàn)在,如果你在尋找一個高性能、跨平臺、支持桌面的圖形框架,那QT仍然是一個強(qiáng)大的選擇。
大廠要的是執(zhí)行效率qt是通用的給不了,qt要的是開發(fā)效率。不可想像一個京東app如果用qt開發(fā),那個卡。除非qt深度定制,人家都有一堆高手,何必找些不可控的事來做。
巨頭用qt的比較少,一方面是由于qt的商業(yè)授權(quán),一方面是自主可控,還有技術(shù)沉淀,qt涉及的內(nèi)容非常多,對大廠的業(yè)務(wù)來說有些臃腫。我不知道,火應(yīng)該怎樣定義,像python那樣?畢竟cpp開發(fā)人員就少,qt不過是個ui框架,這里邊還由于幾大廠都有自己的發(fā)展路線。比如微軟,谷歌,蘋果,這也就導(dǎo)致沒有頂級大廠支持。但是,qt在開源界,中小企業(yè)用的相當(dāng)多,因為它足夠強(qiáng)大。
10
回答2
回答10
回答3
回答0
回答0
回答0
回答10
回答0
回答10
回答