C++言語を使ってアプリケーションプログラムを作成する場合,GUIアプリの作り方は各種OS (Microsoft Windows,Apple OSX,Linux…)でそれぞれ違います. これは,GUIアプリを作成するために使用するクラスライブラリやAPIがそれぞれのOSで異なるからです.
wxWidgetsはGUIアプリを構築するためのクラスライブラリ&APIであり, 共通のものが各種OS用に用意されています. つまり,wxWidgetsを使用して開発したアプリのソースプログラムは, ほとんど変更することなく他のOS上でコンパイルすることができ, 同じ機能と(ほとんど)同じ見た目のGUIアプリを各種OS上に構築することができます.
wxWidgetsはGUIに関する機能だけでなく,各種のデータ構造のためのクラスを提供しており, アプリ開発の利便性を高めます.つまり,wxWidgetsを利用することで, C++のプログラミングにJavaに近い利便性をもたらすことができます.
wxWidgetsはフリーソフトウェア( ライセンス )で,商用プログラムの開発も自由にできます.
wxWidgetsは実用性も高く,これを利用してつくられたアプリも多いようです. 私が実際に使っているフリーソフトの中に,音声データ処理用の Audacityや, 数式処理ソフトMaximaのフロントエンド wxMaxima などがありますが,それらはwxWidgetsを利用して開発されています.
なぜwxWidgets?
実は,各種OS共通のGUIクラスライブラリ&APIはwxWidgets以外にもQtなどがありますが,
wxWidgetsは枠組みとしてコンパクトな感じ(主観かもしれませんが…)ですし,
だいぶ枯れてきて品質が安定してきた感があり,現在私はwxWidgetsを使っています.
(近い将来Qtにも手を出そうかと考えてはいますが…) あとwxWidgetsはGUIのルック&フィールは極力OSネイティブのものを使用しており,
そのOSのGUIのスタイルに合った感じになっています.
つまり,GUIの表面を独自の描画で無理やりエミュレートするということは極力避けているみたいでとても安心感があります.
(主観的なお話しばかりですみません…)
ただ残念なことにwxWidgetsに関する日本語の情報源がまだ充実していない現状もあり,
自分で使い方を調べながら当サイトで情報を紹介しています.
広告になって申し訳ないですが,公式の本(英語)を下に紹介しておきます.
wxWidgetsのサイト
オンラインマニュアル
も本家のサイトが公開しています.(英語ですが…)
wxWidgetsへの期待
本家のサイト(と関連サイト)を見ていると,
スマートフォンやタブレットへの対応もかなり熱心に議論されているようです.
全く同じソースプログラムがAppleのiOSやAndroid用にコンパイルできる日が来たらいいですね.
というわけで,Qtよりは若干地味で質素ですが,いい勝負をしている感じですね.
やっぱりC++は勉強しておこう!
結局,プログラミングを勉強するにはC++は避けて通れない感じがあります.
Javaだけでも十分ですが,「やっぱり結局C++」というわけで,Java & C++がプログラマとしての結論ではないでしょうか… 自学自習用に私が学生に薦めている本はこれです.(また広告です…)