【動機】
最近、C++ で効率的に GUI を構築する手段を探している。
ちなみに僕はそれまで、C/C++ で GUI を構築する場合には Windows API を直接叩いていた。『
猫でもわかる』に洗脳された身としては、このスタイルこそが最もスタンダードな選択肢だと信じていたためである。
しかしコレ、他言語(というか Java)と比較して生産性が圧倒的に悪い。
RAD ツールの出来不出来以前の問題として、そもそも API の仕様が洗練されていないのだ。長い Windows の歴史の中で建て増しを繰り返すうちにすっかりカオスになってしまったらしい。
そして残念ながら、これをがんばって身につけるメリットを、僕はあまり見いだす事ができなかった。
ロジックの本質とは今ひとつ関係のないソースコードばかりが肥大化して、保守性や拡張性が著しく低下するのはどう考えても残念だし、そもそも人様が書いた GUI 関連のコードなど読む気すらしない。
一方、C/C++ を使用する動機は、既存のソフトウェア資源が圧倒的に豊富だからという理由だけで充分である(ラッパを使う事で、他言語から C++ で書かれたライブラリを活用する事ももちろん可能だが、使用できるライブラリのバージョンに制約があったり、不整合が起きやすかったり、そもそもネイティブライブラリに加えてラッパの仕様を調べなきゃいけなくて二度手間だったりと色々面倒なのだ)。
このあたりのせめぎ合いをうまく調停できないだろうかと思っていたところ
Qt なるものを見つけたので、早速試してみる事にした。
Qt は Windows / Mac / Linux で使える C++ 向け GUI ツールキットで、
Wikipedia によると
QtはGTK+やMFC等、他の標準的なグラフィックツールキットに比べて、もっとも後発であることもあり、以前から存在するライブラリーのよいところを集めたアーキテクチャーとなっている。
だそうだ。なるほど。
さらに Qt SDK には
Qt Creator なる統合開発環境が付属しており、グラフィカルにコンポーネントを配置できるナイスな RAD ツール(
Qt Designer)も使える。