這是歷史版本頁面 — 看 Qt (64-bit) 最新版本
跨平台桌面程式開發框架,Qt 能幫你做到什麼
你手上有一個點子,想寫一支小工具,讓它在 Windows 上跑,也希望之後能搬到 Mac 或 Linux 上。你打開 Visual Studio 或記事本,寫到一半開始猶豫:換了系統,程式碼是不是要重寫?介面要重畫?那些按鈕、視窗、選單,在不同作業系統上長得完全不一樣,你不想為了每個平台各維護一套程式碼,但又不知道從哪裡切入。
有些人會想,那就用網頁技術包一層殼,反正瀏覽器到處都有。但做出來的東西開起來慢、吃記憶體,而且很多系統功能繞來繞去就是碰不到。另一條路是學各平台的原生開發,但等於同一件事做兩遍。這個困境的切入點,是找一個「寫一次、編譯到多個平台」的框架,讓介面、邏輯、網路、資料庫這些共用同一套程式碼,而不是每換一個系統就從零開始。
01Qt 到底能做什麼?
Qt 是一套跨平台的應用程式開發框架,主要用途是建立圖形介面(GUI)和應用程式,支援 Windows、macOS、Linux,也能編譯到 Android 和 iOS。它提供預先做好的 UI 元件、網路、SQL 資料庫連線、多媒體處理等功能,讓開發者用同一份程式碼,在不同作業系統上產出原生執行的應用程式,而不是網頁包殼。
02它支援哪些程式語言?
Qt 的核心語言是 C++,這是它最主要的開發方式。另外透過 PyQt 或 PySide 綁定,可以用 Python 來寫 Qt 應用程式;QML 則是用來描述介面的宣告式語言。JavaScript 也可以透過 QML 整合使用。如果你只會 Python 不會 C++,還是能上手,只是要另外安裝綁定套件。
03可以用它開發手機 App 嗎?
可以。Qt 支援 Android 和 iOS 的開發,主要透過 Qt Quick 和 QML 來建立手機介面。用同一套程式碼,可以同時產出桌面版和手機版。不過要注意,手機上有些平台特有的功能(例如感應器、相機)需要透過 Qt 的模組或原生程式碼來補強,不是所有桌面功能都會自動對應到手機上。
04它適合拿來做遊戲嗎?
Qt 支援 OpenGL 和 3D 圖形,可以做一些模擬、視覺化或簡單的遊戲。但官方說明也提到,它比較適合「應用程式」而不是高效能遊戲引擎。如果你要做的是 3A 級遊戲或需要大量物理運算的遊戲,Unity 或 Unreal 這類專門引擎會更合適。Qt 的強項在工具、介面、嵌入式系統,不是遊戲。
05它跟 Visual Studio 能搭配使用嗎?
可以。Qt 有 Visual Studio Add-in,可以直接整合到微軟的 IDE 裡,在 Visual Studio 中建立 Qt 專案、編譯、偵錯。如果你習慣用 Visual Studio 寫 C++,不需要換編輯器。另外 Qt 也有自己附帶的 Qt Creator IDE,內建語法標色、除錯器、即時設計預覽,兩條路都可以走。
06什麼樣的人適合用這套軟體?
適合需要「同一套程式碼部署到多個作業系統」的開發者,尤其是桌面應用程式為主、之後可能擴展到手機或嵌入式裝置的專案。也適合已經會 C++、想找一套完整 GUI 框架的人。如果你在 Windows 上開發,但客戶或使用者分散在 Mac 和 Linux,Qt 可以省下大量重寫介面的時間。
07它免費嗎?授權是怎麼算的?
Qt 有開放原始碼版本,採用 GPL 和 LGPL 授權,非商業用途免費。但如果你要開發「專有軟體」(不開源、要賣錢的),就需要購買商業授權,價格依需求而異。LGPL 在某些條件下可以讓你在商業軟體中使用,但要注意衍生作品的授權義務,這部分要自己確認是否符合你的商業模式。
08它對電腦硬體有什麼要求?
官方列出的系統需求是:Windows 10 或 11(64 位元)、Intel Core i3 或更高、記憶體至少 4GB(建議 8GB 以上)、硬碟空間至少 5GB、顯示卡要支援 OpenGL 才能跑 Qt Quick 應用程式。如果你的電腦是舊款或記憶體不足 4GB,跑起來可能會卡,建議先確認硬體再安裝。
09什麼情況不該選它?
如果你只做 Windows 專用的內部工具、不需要跨平台,用 .NET 或原生 Windows 框架可能更輕量。如果你完全不想碰 C++ 或 QML,只想用一種語言從頭寫到尾,Qt 的學習曲線會是障礙。另外,Qt 做出來的應用程式體積比原生 Windows 程式大,如果你很在意安裝檔大小,這點要列入考量。
10它的學習曲線很陡嗎?
官方資料提到 QML 和 Qt 框架本身有學習曲線。如果你已經會 C++,Qt Widgets 的傳統桌面介面相對好上手;但 Qt Quick 和 QML 是另一套宣告式語法,需要花時間熟悉。Python 綁定(PySide)可以降低入門門檻,但底層概念還是 Qt 的那一套,建議先從官方教學和文件開始。
11這套軟體還有人在維護嗎?
有。根據版本紀錄,它收錄了 22 個版本,最早在 2016 年,最近一次更新在 2026 年,近 12 個月更新了 7 次,近 24 個月更新了 15 次。更新頻率算穩定,代表開發團隊持續在維護。另外官方文件提到有活躍的開發者社群,遇到問題時找資料或問人相對容易。
12它的使用者評價如何?
目前有 71 人評分,平均 8.26 分(滿分 10 分)。評分人數不算多,但分數偏高。要注意的是,71 個樣本數不大,參考價值有限。如果你在猶豫,可以自己下載安裝試用,實際跑一個小專案看看介面順不順手,比只看分數更準。
下載與官方連結
qt-opensource-windows-x86-msvc2015_64-5.8.0.exe · 連結指向軟體原廠
版本紀錄
再看 5 筆
這一版改了什麼
What's new in this version:
Qt Lite:
- One of the main themes of Qt 5.8 has been to make Qt more flexible and easier to adopt to your use case, targeted especially at our embedded users. Qt Lite has been the codename of the project under which we did those changes
- Our goal has been to make it easier to configure Qt to exactly your needs and leave out features that you don’t need in your project. This brings major savings in the size of the compiled Qt libraries and thus your application
- Implementing support for this put us on a longer journey, where we rewrote most parts of the system that was being used to configure Qt. The new system cleans up a system that had grown over the last 15 years, and that also lead to many inconsistencies on how Qt was being configured on different host platforms
- As a result, we now have one unified system to configure the different parts of Qt. In addition to giving our users a lot more flexibility in configuring Qt, it will also ease our burden in supporting all the different ways Qt can be configured and used
- Using the new system allows you to create a Qt build tailored to exactly your use case. You can leave out all the features in Qt that you don’t need, saving ROM and RAM when deploying to your embedded device
Qt Wayland Compositor:
- The Qt Wayland Compositor API that we included as a Technology Preview in Qt 5.7 is now fully supported in Qt 5.8. The module makes it very easy to create your own Wayland Compositor.
- Qt Wayland Compositor make it very easy to implement your own custom home screen and application manager. This allows the creation of powerful and more complex embedded systems where you have multiple applications that have their own user interfaces. Qt Wayland Compositor supports handling multiple screens in an easy and transparent way. It comes with both QML and C++ APIs.
Communication and Networking:
- Qt Serialbus has now graduated to be fully supported in Qt 5.8. It allows you to use Qt APIs for device bus communications and protocols. While the API is rather generic, this version includes implementations for CAN and Modbus.
- Qt Network and Web Sockets gained full support for TLS PSK cyphersuites. Qt Network now supports configurable Diffie-Hellman parameters and HTTP/2 in QNetworkAccessManager.
- Qt Bluetooth gains BTLE Peripheral support on macOS and iOS as well as BTLE Central support on WinRT.
- Qt 5.8 also adds a new Qt Network Authorization module as a Technology Preview, currently supporting the OAuth 1 and 2 authentication schemes
Qt QML and Quick:
- Quite a few things have happened in Qt QML and Qt Quick. The QML engine has gained support for caching binary representations of QML and JS files on disk, reducing startup time and memory consumption of the engine. The commercial only Qt Quick compiler is still supported in 5.8, but we are planning to merge it with the new caching infrastructure in the future, leading to a better performing and more tightly integrated solution.
- The Qt Quick scene graph has undergone a larger refactoring, making it less dependent on OpenGL. This allowed us to add an experimental Direct3D 12 backend for Qt Quick, and does enable the creation of other backends e.g. based on the Vulkan graphics APIs.
- In addition, the scene graph now supports partial updates to the screen if only a small area of the scenography changed. This brings some larger performance improvements to the Qt Quick 2D renderer.
- We also used the changes to the scene graph as an opportunity to fold the functionality of the Qt Quick 2D renderer into Qt Quick directly. This implies that the Qt Quick 2D renderer does not exist as a standalone module in Qt 5.8 anymore.
- Larger changes have also been done under the hood with respect to Mouse and Touch event handling, unifying them internally in a new QQuickPointerEvent class. This lays the foundation for future improvements to mouse and touch event handling, but doesn’t affect code using Qt Quick yet.
- The Qt Quick Controls 2 have also gained a couple of new types such as dialogs, rounded buttons and tool separators. The Material and Universal styles have gained some new effects and support for a ‘system’ theme.
Qt Webengine:
- As always the Chromium version used by Qt Webengine has been updated, this time to Chromium 53. One long outstanding feature added in Qt 5.8 is the ability to print web pages. Many smaller new features have been added, amongst them a new QML API to define custom dialogs, tootips and context menus, and support for view-source: and some chrome: schemes.
Qt SCXML:
- Qt SCXML is now fully supported in Qt 5.8. The module makes is trivial to integrate SCXML based state machines into Qt. It builds directly onto the Qt Statemachine Framework, and extends it with with both a SCXML to C++ compiler and a runtime that allows loading SCXML based state machines.
- Together with the Qt SCXML module, Qt Creator 4.2 gained support for editing state charts
New Technology Previews:
- Also in Qt 5.8, we have new functionality that we chose to introduce as a Technology Preview
- Qt now compiles for both Apple’s tvOS and watchOS. While most of the functionality that we support on iOS should also work on tvOS, watchOS support is limited to the non-graphical functionality in Qt
- Qt Speech has been added as a new module adding support to text to speech functionality
Other improvements:
- After the initial release of Qt 3D with Qt 5.7, the focus for 5.8 has been on maturing the module. A large amount of bug fixes and performance improvements have been made for the module
- Qt Charts has gained a Candlestick chart type and we have made the QOpenGLTextureBlitter API in Qt Gui public
- Our embedded platforms supported by Qt for Device Creation have gained better support for multi-screen systems when using the eglfs QPA plugin and support for 90/180 degree rotated screens
- Finally, many changes happened to our code base to make better use of the new features offered by C++11 and with that clean up and modernize our code base