日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Qt框架简介

發布時間:2023/12/25 综合教程 41 生活家
生活随笔 收集整理的這篇文章主要介紹了 Qt框架简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里的Qt不是指Qt語音平臺,而是指GUI框架。

截止至2020年8月,Qt的最新版本是5.15.0,但仍有很多資料是基于Qt4,為了避免大家誤入歧途,所以寫了這篇文章。

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

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

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

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

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

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

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

是開源的,需要遵循LGPL或GPL協議。

3、Qt是使用什么語言開發的?

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

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

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

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

5、什么是Qt Creator?

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

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

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

這里要特別注意的:VS使用的是msvc編譯器,Qt Creator使用的是Mingw 32編譯器,這兩個編譯器編譯出來的庫并不通用。

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

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

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

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

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

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

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

10、什么是pyQt?

pyQt是指用python腳本語言來調用Qt框架,從而快速開發圖形界面。但是商業使用pyQt,是要收費的。

pyQt4請看《PyQt編程指南》。pyQt5請看《PyQt5快速開發與實戰》、《Qt5/PyQt5實戰指南》、《Python Qt GUI與數據可視化編程》、《pyQt5參考手冊》、《PyQt5 tutorial》。

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

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

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

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

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

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

因為Qt默認使用動態編譯,所以編譯出來體積超大。可以使用UPX壓縮殼。

14、怎樣使用Qt靜態編譯代碼?

請參考《Qt5.9.0 MingGW靜態編譯》,建議下載現成的靜態庫。

靜態編譯出來的文件非常大,建議使用UPX壓縮殼

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

15、怎樣使用Qt發布應用?

動態編譯的話,可以使用Qt Creator自帶的windeployqt(5.14.0不支持windeployqt)

動態編譯后,可以使用NSIS制作成安裝包。

靜態編譯,再加UPX壓縮殼,即可發布,而且是單一文件。

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

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

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

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

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

嵌入式開發、桌面開發。

19、哪里能下載到Qt?

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

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

不想注冊的話,也可以使用國內的鏡像。

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

20、Qt4和Qt5有什么區別?

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

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

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

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

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

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

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

QWT已經很久不更新了,所以,有的人會使用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系統?

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

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

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

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

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

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

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

28、如何顯示系統托盤?

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

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

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

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

使用NSIS制作成安裝包。

使用第14點的靜態編譯。

30、C++有哪些第三方庫?

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

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

其它的,請參考《C++開源庫大全》。

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

可以使用QtSingleApplication

32、如何實現命令行程序?

可以使用QCommandLineParser和QCommandLineOption。

33、如何使用Open CV?

使用Qt Creator的話,請參考《用Qt Creator編譯opencv并配置開發環境

使用VS的話,請參考《OpenCV3.1.0+VS2015開發環境配置

OpenCV的教材,推薦《Open CV3和Qt5計算機視覺應用開發

34、如何使用Qt Creator編譯出64位機的應用程序?

請使用Mingw-w64,或者msvc 64 bit

35、Widget和Qml可以共存在一個窗口嗎?

可以用QQuickWidget和qml交互。請參考《Qml嵌入Widget以及Qml與Widget交互》。

36、怎樣制作音視頻播放器?

可以使用VLC-QT

37、如何編譯Open SSL?

VS編譯Open SSL》。

Mingw編譯Open SSL》。

38、MFC如何調用Mingw編譯的Qt dll?

可以使用qtwinmingrate,但是筆者試過,未成功。

39、Qt for Automation。

Qt for Automation是關于物聯網應用的框架,它包含CoAP、MQTT、KNX、OPC UA等功能,屬于Qt框架的子集,但是收費的。其中CoAP協議,可以使用開源的cantcoap

40、怎樣消除M16警告?

刪除下面這行即可。

41、如何做PDF閱讀器?

使用Poppler,但是網上只有mingw32的庫,別的編譯器,要用源碼編譯。

也可以使用Mupdf,或者在瀏覽器中調用pdf.js

42、如何輸出Word、PPT、PDF文件?

(1)使用QAxObject來調用COM,可以調用本地的辦公軟件(需要破解好或正版)來生成這些格式的文件,相關的函數可以看Word/PPT的VBA手冊

在Word/PPT中使用錄制宏,得到VBA源碼,修改其源碼,再用QAxObject來調用VBA,最終再將Word轉為PDF。

此外,QAxObject有方法generateDocumentation(),可以生成文檔,有一些類型和枚舉等說明,可用于VBA轉QAxObject時參考。

(2)使用LateX,LateX對PDF支持非常好,可以任意生成PDF。再用pandoc將PDF轉成Word/PPT,但是轉出來的格式總是不太好。

(3)使用C++/CLI(只能用VS)來調用Office Open XML的.net接口(未嘗試過),但是非常靈活,速度也快。(Office Open XML可以不用安裝Word/PPT)

github上有QtOfficeOpenXml庫,但是依賴較多,編譯失敗。

43、如何用Qt搭建Web服務器?

可以使用QtWebApp

44、如何實現Web瀏覽器?

可以使用WebEngine,但是必須使用msvc編譯。

如果使用mingw編譯器,可以用miniblink,其API文檔請點擊這里

miniblink可以實現Electron的功能,而且體積更小。

此外,還有cef、firefox等開源瀏覽器。

45、怎樣防止qml源碼泄漏?

使用記事本打開編譯qml成生的exe文件,如下圖所示。

可以直接看到qml源碼。這里對該exe進行加殼,即可防止源碼泄露。

總結

以上是生活随笔為你收集整理的Qt框架简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。