Qt學習筆記02:Qt是什麼?非常全面!

Qt是什麼?

要知道,光用C++寫代碼做窗體可以很容易把你擊垮,代碼很長……

我就試過,dev生成的代碼就特別長,這一點Python相對好些。

Qt就是針對C++做窗體的輔助軟件,應該也可以做非GUI窗體的應用。(本人懂得不多,請指教在評論區😅)它可以通過拖拽的方式簡化操作,自動生成代碼


Qt(官方發音 [kju:t],音同 cute)是一個跨平臺的 C++ 開發庫,主要用來開發圖形用戶界面(Graphical User Interface,GUI)程序,當然也可以開發不帶界面的命令行(Command User Interface,CUI)程序。

Qt 是純 C++ 開發的,所以學好 C++ 非常有必要,對於不瞭解 C++ 的讀者,我建議先閱讀《C語言教程》,再閱讀《C++教程》(這兩個教程是C語言中文網的,沒學過C和C++的不用看,因爲看不懂,找本書看看)。C++ 是在C語言的基礎上發展起來的,學完C語言就學了 C++ 的一半了。

Qt 還存在 Python、Ruby、Perl 等腳本語言的綁定, 也就是說可以使用腳本語言開發基於 Qt 的程序。開源社區就是這樣,好東西就會被派生擴展,到處使用, 越來越壯大。

Qt 支持的操作系統有很多,例如通用操作系統 Windows、Linux、Unix,智能手機系統 Android、iOS、WinPhone, 嵌入式系統 QNX、VxWorks 等等。

在這裏插入圖片描述

Qt 可以做什麼?

Qt 雖然經常被當做一個 GUI 庫,用來開發圖形界面應用程序,但這並不是 Qt 的全部;Qt 除了可以繪製漂亮的界面(包括控件、佈局、交互),還包含很多其它功能,比如多線程、訪問數據庫、圖像處理、音頻視頻處理、網絡通信、文件操作等,這些 Qt 都已經內置了。

Qt 是應用程序開發的一站式解決方案,有了 Qt,你就可以高枕無憂了!Qt 本身包含的模塊也日益豐富, 一直有新模塊和第三方模塊加入進來。

大部分應用程序都可以使用 Qt 實現,除了與計算機底層結合特別緊密的,例如驅動開發,它直接使用硬件提供的編程接口,而不能使用操作系統自帶的函數庫。

1997年,Qt 被用來開發 Linux 桌面環境 KDE,大獲成功,使 Qt 成爲 Linux 環境下開發 C++ GUI 程序的事實標準。

下面的程序都使用 Qt 開發:WPS、YY語音、Skype、豆瓣電臺、蝦米音樂、淘寶助理、千牛、暴雪的戰網客戶端、VirtualBox、Opera、咪咕音樂、Google地圖、Adobe Photoshop Album 等。

Linux 也是嵌入式的主力軍,廣泛應用於消費類電子、工業控制、軍工電子、電信/網絡/通訊、航空航天、汽車電子、醫療設備、儀器儀表等相關行業。

Qt 雖然也支持手機操作系統,但是由於 Android 本身已經有 Java 和 Kotlin,iOS 本身已經有 Objective-C 和 Swift,所以 Qt 在移動端的市場份額幾乎可以忽略。

總起來說,Qt 主要用於桌面程序開發和嵌入式開發。

Windows 下的 GUI 庫

Windows 下的 GUI 解決方案比較多:

  • 基於 C++ 的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout;
  • 基於 C# 的有 WinForm、WPF;
  • 基於 Java 的有 AWT、Swing
  • 基於 Pascal 的 有Delphi;
  • 基於Go語言的有 walk 和 electron;
  • 還有國內初露頭角的 aardio;
  • Visual Basic 曾經很流行,現在逐漸失去了色彩;
  • 如果你有 Web 開發經驗,也可以基於 Webkit 或 Chromium 將網頁轉換爲桌面程序。

沒有哪一種方案能夠獨霸 Windows,使用比較多的編程語言是 C++、C#、Java。

用 Qt 來開發 Windows 桌面程序有以下優點:

  • 簡單易學:Qt 封裝的很好,幾行代碼就可以開發出一個簡單的客戶端,不需要了解 Windows API。
  • 資料豐富:資料豐富能夠成倍降低學習成本,否則你只能去看源碼,關於 DirectUI、Htmlayout、aardio 的資料就很少。
  • 漂亮的界面:Qt 很容易做出漂亮的界面和炫酷的動畫,而 MFC、WTL、wxWidgets 比較麻煩。
  • 獨立安裝:Qt 程序最終會編譯爲本地代碼,不需要其他庫的支撐,而 Java 要安裝虛擬機,C# 要安裝 .NET Framework。
  • 跨平臺:如果你的程序需要運行在多個平臺下,同時又希望降低開發成本,Qt 幾乎是必備的。

Qt 和 MFC

讀者經常將 MFC 和 Qt 進行對比,MFC 只能應用在 Windows 平臺,而 Qt 是跨平臺的,一次編寫,到處運行。

另外,Qt 已經封裝了底層細節,學習 Qt 將會非常簡單;而 MFC 只是給 Windows API 加了一層包裝,不瞭解 Windows API 也學不好 MFC,大家普遍反映 MFC 難學。

我們不能簡單地說 Qt 好還是 MFC 好,兩者都有用武之地;但是初學者學習 Qt 會比較簡單,不用應付那些煩人的 Windows API,很快就能開發出帶有漂亮界面的應用程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章