クロスプラットフォームツールキットであるwxWidgets 3.2.0の新しい安定版ブランチの最初のリリースが最近発表されました。これにより、Linux、Windows、macOS、UNIX、およびモバイルプラットフォーム向けのグラフィカルインターフェースを作成できます。
3.0ブランチと比較すると、APIレベルでいくつかの非互換性があります。他のツールキットとは異なり、wxWidgetsはGUIをシミュレートするのではなく、システムAPIを使用して、対象システム向けに真にネイティブな外観のアプリケーションを提供します。
wxWidgetsは、プラットフォームのネイティブコントロールに薄い抽象化レイヤーを提供する点で、ネイティブツールセットと表現するのが最も適切です。これは、プリミティブなグラフィックスを使用してコントロールをエミュレートするのとは対照的です。既存のプラットフォーム上でネイティブコントロールを使用することで、Swing(Java用)などの他のライブラリよりも、グラフィカルインターフェースにおいてよりネイティブな視覚効果を実現できるだけでなく、パフォーマンスの向上やその他のメリットも得られます。
wxWidgetsは、グラフィカルインターフェイスの開発に限定されているだけではありません。これは、ライブラリに通信インタープロセスのレイヤー、ソケットなどのネットワークの機能などがあるためです。
wxWidgets3.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クラスでは、ウィンドウに任意のラベルを割り当てる機能が実装されています。
その他の注目すべき変更点は以下のとおりです。
- HTTPSおよびHTTP/2のサポートがwxWebRequestAPIに追加されました。
- wxGridクラスの列と行をフリーズするためのサポートが追加されました。
- ダークテーマを使用する機能やARMプロセッサベースのデバイスの追加サポートなど、macOSプラットフォームのサポートが改善されました。
- C++11標準をサポートするための機能拡張が行われました。 C++20コンパイラによるアセンブリのサポートが追加されました。
- 含まれているすべてのサードパーティライブラリが更新されました。 WebKit2とGStreamer1.7のサポートが追加されました。
最後に、さらに詳しく知りたい場合は、こちらのリンクから詳細をご確認いただけます。
wxWidgetsをダウンロードする
このツールキットをダウンロードしてインストールすることに関心のある方は、公式Webサイトのダウンロードセクションから、対象のオペレーティングシステム(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