跨平台工具包wxWidgets 3.2.0的新穩定分支的第一個版本最近發布,該工具包允許為 Linux、Windows、macOS、UNIX 和行動平台創建圖形介面。
與 3.0 版本相比,存在一些 API 層面的不相容性。與其他工具包不同, wxWidgets使用系統 API 而非模擬 GUI,為目標系統提供真正原生外觀的應用程式。
wxWidgets 最恰當的描述是原生工具集,因為它為平台的原生控制提供了一層輕量級的抽象,而不是使用原始圖形來模擬控制項。在現有平台上使用原生控件,除了能提供更好的效能和其他優勢外,還能比其他函式庫(例如 Java 的 Swing)實現更接近原生視覺效果的圖形介面。
wxWidgets不僅限於圖形界面的開發,這是因為該庫具有通信進程間層,網絡功能(例如套接字)等。
wxWidgets 3.2.0的主要新功能
這個新版本重點實現了 wxQt 的一個新實驗性移植版本,該版本允許 wxWidgets 在 Qt 框架上運行,而 wxGTK 移植版本則提供了對 Wayland 協議的完全支援。
此外,還重點介紹了新增對高像素密度(高 DPI)顯示器的支持,以及為不同顯示器分配不同 DPI 設定和動態變更 DPI 設定的功能。此外,還提出了一種新的 wxBitmapBundle API,允許使用者同時操作不同解析度下的各種點陣圖選項。
另一個值得注意的變化是引入了基於 CMake 的新建置系統,該系統增加了對新編譯器(包括 MSVS 2022、g++12 和 clang14)和作業系統的支援。
值得一提的是,它還改進了 OpenGL 相容性,更好地利用了較新版本的 OpenGL (3.2+),並增加了對 LZMA 壓縮和 64 位元 ZIP 檔案的支援。
另一方面,它還強調了改進的編譯時安全性,能夠禁用 wxString 和 "char*" 類型的字符串之間的危險隱式轉換,並增加了對事件的支持以控制用鼠標播放的手勢。
wxFont和 wxGraphicsContext 類別現在允許在確定字體大小和觸控筆寬度時指定非整數值。 wxStaticBox 類別實作了為視窗分配任意標籤的功能。
其他顯著變化包括:
- wxWebRequest API 添加了對 HTTPS 和 HTTP/2 的支持。
- 在 wxGrid 類中添加了對凍結列和行的支持。
- 改進了對 macOS 平台的支持,包括使用深色主題的能力以及對基於 ARM 處理器的設備的額外支持。
- 已進行增強以支持 C++11 標準。 添加了對 C++20 編譯器彙編的支持。
- 所有包含的第三方庫都已更新。 添加了對 WebKit 2 和 GStreamer 1.7 的支持。
最後,如果您有興趣了解更多信息,可以點擊此鏈接查看詳情。
下載wxWidgets
對於那些有興趣下載和安裝此工具包的人,可以從官方網站的下載部分中獲取目標操作系統(Windows,Mac或Linux)的軟件包。
對於使用Debian,Ubuntu或其中一些衍生產品的用戶,可以在終端中鍵入以下內容進行編譯。
sudo apt-get install libgtk-3-dev build-essential checkinstall
他們繼續解壓縮從官方網站下載的軟件包,然後輸入生成的文件夾。 在這裡,他們可以打開位於文件夾路徑中的終端,也可以將自己放置在終端中的文件夾內。
然後我們繼續進行編譯:
mkdir gtk-build
cd gtk-build/
../configure --disable-shared --enable-unicode
make