www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 技術讓夢想更偉大
[導讀]關注、星標公眾號,直達精彩內(nèi)容來源:嵌入式ARMQt一開始是由奇趣公司開發(fā)的,后來被Nokia收購了,然后再被Digia收購了。所以有的人會誤以為Qt就是為了塞班系統(tǒng)而生,是個落伍的產(chǎn)物。但是很多嵌入式軟件、桌面工具都是用Qt來開發(fā)的,包括Quartus和Cadence也有用到Q...


來源:嵌入式ARM





Qt一開始是由奇趣公司開發(fā)的,后來被Nokia收購了,然后再被Digia收購了。所以有的人會誤以為Qt就是為了塞班系統(tǒng)而生,是個落伍的產(chǎn)物。



但是很多嵌入式軟件、桌面工具都是用Qt來開發(fā)的,包括Quartus和Cadence也有用到Qt。


誠然,Qt也是類似于C#、JAVA那樣,專門用來開發(fā)圖形界面的,那么Qt有哪些特別的地方呢?以下,一一介紹。




1、Qt能在哪些平臺使用?


這里的平臺是指操作系統(tǒng),不是指CPU。Qt可以在Windows、Linux、Android、iOS、mac OS、QNX、VxWorks下使用。



把Linux移植到ARM上,也是能跑Qt開發(fā)出來的軟件的。




2、Qt是開源的,還是收費的?


是開源的,需要遵循LGPL、GPL協(xié)議。




3、Qt是使用什么語言開發(fā)的?


建議底層用C 做業(yè)務邏輯,上層用QML做圖形界面。也可以純C 開發(fā),但是做界面時會比較累。




4、什么是Qt Quick,什么是QML,兩者有什么關系?


Qt Quick只是一種技術名稱,它本身不指代任何語言,但是,當別人說到Qt Quick一般是指用QML快速開發(fā)圖形界面。



QML是一種類似于CSS和JAVA Script的混合語言,語法非常簡單易學,適合沒什么編程經(jīng)驗的人。




5、什么是Qt Creator?


Qt Creator是Qt官方的IDE,專門用Qt框架開發(fā)圖形界面的。




6、除了Qt Creator,還有什么IDE可以用?


目前比較流行的是Visual Studio,簡稱VS。Qt Creator一安裝好就能使用,但是VS是需要自己設置才可以用。




7、Qt Creator的原生編輯器有Vi / Vim模式嗎?


有,叫Fake Vim,按照下圖設置即可。




8、新手入門應該學哪個版本的Qt?


應該學最新的Qt5,推薦教材《Qt Creator快速入門》、《Qt Quick核心編程》,以及官方自帶的英文文檔。




9、哪里能找到Qt的官方文檔?


打開Qt Creator,如下圖,Help,就是了。



有某些方法,文檔上并沒有寫,但是實際上是存在的。這時需要利用代碼補全。




10、什么是pyQt?


pyQt是指用python腳本語言來調(diào)用Qt框架,從而快速開發(fā)圖形界面。但是商業(yè)使用pyQt,是要收費的。



目前只有一本關于pyQt4的書——《PyQt編程指南》,但是現(xiàn)在最新的是pyQt5。



推薦《pyQt5參考手冊》、《PyQt5 tutorial》。




11、我現(xiàn)在只學習C、C 語法,不做圖形界面,可以使用Qt Creator編譯、運行代碼嗎?


可以。Qt Creator自帶MinGW編譯器可以編譯C、C 。但不是所有從Qt官網(wǎng)下載的安裝包,都帶有MinGW編譯器,下載時需特別注意。


新建工程時,使用以下工程模板即可。




12、如何使用Qt開發(fā)3D圖形界面?


可以使用Open GL,請參考《QT OpenGL教程》。




13、為什么隨便寫一個Hello World,編譯出來都30幾MB?


因為Qt默認使用動態(tài)編譯,所以編譯出來體積超大??梢允褂肬PX壓縮殼。




14、怎樣使用Qt靜態(tài)編譯代碼?


請參考《Qt5.9.0 MingGW靜態(tài)編譯》,建議下載現(xiàn)成的靜態(tài)庫。


靜態(tài)編譯出來的文件非常大,建議使用UPX壓縮殼。


其中,靜態(tài)編譯Qt5.7.0,需要卸載VC6.0,否則config不過。




15、怎樣使用Qt發(fā)布應用?


動態(tài)編譯的話,可以使用Qt Creator自帶的windeployqt。


動態(tài)編譯后,可以使用NSIS制作成安裝包。


靜態(tài)編譯,再加UPX壓縮殼,即可發(fā)布,而且是單一文件。




16、怎樣把Qt的代碼,移植到ARM?


你需要使用交叉編譯器Arm Gcc,并設置硬件相關的參數(shù)。




17、Qt用在Android、OS X上面多嗎?


不多,所以不建議使用Qt開發(fā)Android、OS X的app。




18、Qt用在哪些地方比較多?


嵌入式開發(fā)、桌面開發(fā)。



19、哪里能下載到Qt?


https://www.qt.io/download-open-source/#section-2


在官網(wǎng)注冊賬號,登錄,就可以在以上頁面下載Qt了。


不想注冊的話,也可以使用國內(nèi)的鏡像。


http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/




20、Qt4和Qt5有什么區(qū)別?


Qt4一行代碼,即可全局支持中文,Qt5默認支持中文。


Qt4不支持串口,需要使用第三方的串口庫,Qt5支持串口。


此外,Qt4和Qt5還有很多區(qū)別,這里不一一列舉。




21、有哪些好用的Qt第三方庫?


第三方庫,不是Qt官方開發(fā)的,而是由其它組織開發(fā)的。


比較出名的是QWT庫,使用QWT庫,可以輕松搞定各種圖形界面,如:餅狀圖、示波器圖、波特圖等。


然而,QT自帶的QtCharts比QWT庫還要好用。QtCharts支持C 和QML混合編程,而QWT只支持C 。


QWT已經(jīng)很久不更新了,所以,有的人會使用qcustomplot,它也是一個畫圖的第三方庫。




22、哪里可以在線瀏覽Qt的類?


http://doc.qt.io/qt-5/classes.html




23、哪里可以在線瀏覽Qml的類型?


http://doc.qt.io/qt-5/qmltypes.html




24、怎樣讀取USB設備的信息?


可以使用WIN32的API捕獲USB的消息(#include ),或者使用libusb。




25、哪些版本的QT可以支持XP系統(tǒng)?


Qt5.7.0及之前的版本都可以支持XP。Qt5.7.0可以直接支持XP,但是有可能會彈出警告。




26、如何設置全局快捷鍵、獲取全局鼠標坐標?


設置全局快捷鍵可以使用第三方庫qxtglobalshortcut。


獲取全局鼠標坐標可以用QCursor::pos()。




27、如何設置窗口快捷鍵,應用程序快捷鍵?


C 的話,可以使用QShortCut類,QML可以使用ShortCut。


但是QShortCut和ShortCut,只在窗口或應用程序在focus時,才能使用快捷鍵,并非全局快捷鍵。




28、如何顯示系統(tǒng)托盤?


Qt5.8或以上版本,可以使用QML的SystemTrayIcon;或者使用C 的QSystemTrayIcon類。


Qt5.8以下的版本(不含5.8)只能使用C 的QSystemTrayIcon類。




29、Qt的動態(tài)編譯文件太多,如何打包成一個文件?


使用Enigma Virtual Box,但是可能會被殺毒軟件殺掉。


使用NSIS制作成安裝包。


使用第14點的靜態(tài)編譯。




30、C 有哪些第三方庫?


除了C 自帶的庫(如STL庫)以外的,還有第三方庫。


較為出名的是Boost庫,推薦《Boost程序庫完全開發(fā)指南》。




31、如何讓Qt運行單一實例進程?


可以使用QtSingleApplication。




32、如何實現(xiàn)命令行程序?


可以使用QCommandLineParser和QCommandLineOption。



????????????????  END  ????????????????



本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。

技術讓夢想更偉大

257 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉