読者です 読者をやめる 読者になる 読者になる

Qt SDKを導入してみた

簡単にC++でGUI作れるフレームワークとかないかなと探していたらQt(キュート)なるものを見つけました。ということで導入してみます。
とりあえずQtの公式ホームページにいき、ダウンロードからインストーラを落とします。僕は開発ではwindowsを使っているのでwindows版のを落としましたが他でも大体同じようです。それでインストーラ実行。あとは適当にnext押すだけで、勝手に処理をしてくれます。インストール途中で一箇所エラーを吐いたのですがとりあえず無視。そんなこんなでインストールが終わるのを待ちます。通常プログラミングはじめるときって環境導入が一番鬼門な気がしますがかなり簡単に終わってしまいました。おかげで解説記事書くまでもない...というわけでインストールが終わったところで早速Qt Creatorを起動してみます。なんかすごくスタイリッシュですね。これならVisualStudioなんかより気分よく開発できそう。やっぱり毎日使うものなんで見た目も結構重要かと。メモリ結構食ってますが...
 閑話休題。話がどんどんそれてしまいそうなので戻します。Qtのすごいのはインストールの早さもさることながらIDEがコンパイラ内蔵していてくろすぷラットフォームということだと思います。これはつまりWindows,Mac,Linuxで完全に互換性があるということで全くコードの変更なしに移植できるということ。見た目だけではなくコンパイラ間の互換性すら考慮しなくていいとはかなりすごいじゃないですか。ということで早速プログラミングに取り掛かりましょう。

基本的に初めての製作に関しては
http://ashitani.jp/wiki/index.rb?p=Qt%E3%81%8A%E3%82%88%E3%81%B3QtCreator%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

http://labs.qt.nokia.co.jp/getting-started-with-qt
が参考になると思います。
ただ、今回導入したバージョンが「2011年11月8日」リリースのものとリリースされてそんなに日数が経ってなく、若干操作が異なるので一応ここでも解説しておきます。
まず、ファイル→プロジェクトの新規作成で新しいプロジェクトを作成します。新規作成画面が開いたら「Qt ウィジェットプロジェクト」を選択(下図)し、右側の小さい領域に表示されている「Qt GUI アプリケーション」をクリックします。
f:id:ikaro1192:20120224130152p:plain
次にプロジェクト名を決めるウィンドウが出るので、ここでは「Hello_World」とでも入力しておきます。パスのほうは問題がなければ特にいじる必要がないかと。
 「次へ」を押して出てくる「ターゲットビルド」は特に変更しなくて大丈夫なので次へ進めます。
 クラス情報を入力するところでは今回は基底クラスの部分を「QWidget」と選択(下図)します。クラス名は自動的に入力されたもので問題はないので次へを押します。
f:id:ikaro1192:20120224130907p:plain
プロジェクト管理とか出てきますがGitHub等のバージョン管理ツールを使っていないなら無視して大丈夫です。ここでは話を簡単にするため使わない方向でいきます。というわけで完了を押すとプロジェクトが出来上がります。
 プロジェクトができたら左にあるツリーから「フォーム」のなかの「widget.ui」をダブルクリックします。(下図)
f:id:ikaro1192:20120224132325p:plain
そうすると編集画面に移行すると思うので左のこまごまと配置されている中から「Push Button」を選択し灰色のフォームの上にドラッグしてもって行きます。そこで適当に整形してくだい。(下図)
f:id:ikaro1192:20120224132745p:plain
ボタンを右クリックしてテキストの編集で「Push Button」って書いてあるのを変えることができます。僕は「Hello World」に変更しました。ここは日本語でも大丈夫なようです。
その後、またボタンを右クリックし「スロットへ移動」を選択します。そしてシグナルを選択と出るのでそのなかから「clicked()」をダブルクリックします。そうすると自動的にメソッド(メンバ関数)が入力されいると思います。そそこに「this->setWindowTitle("Hello World!!");」と入力します。
できたら実行(ctrl+r)してください。保存されていないようなら保存します。そうするとデザインしたとおりのウィジェットが開くと思います。そしてボタンを押すとタイトルが「Hello World」に変わります。(下図)
f:id:ikaro1192:20120224134834p:plain
とかなり手軽にGUIプログラムが作れてしまいました。