QtでHello, World!!

      2012/4/21
     まどろみはじめ
動機

 @vivisuke氏にかねてよりQtのお誘いを受けていた
 魔法の言葉「ちょっと今忙しいんで」


 段々、申し訳ない気分に。


 ちょっとだけなら……   ←今ここ
レベル

 Visual Studioの使用経験あり
 C#を使った開発経験あり


 C++に対するアレルギー持ち




 何はともあれ、環境を入手→セットアップ
Qt Creator

 ぱっと見なんかVisual Studio に似てる。親近感!


ファイル
一覧
(選択
時)


                             インスペク
                             タ
画面要素
参考:Visual Studio


 ファイル                      画面要素
 一覧




インスペク
タ
(簡単な)GUIプログラム作成の手順

 まず、大まかなデザインを決める
 インタラクティブな部分(シグナル、スロット)も
 GUIで指定

 ヘッダファイル(.h)に定義を書く
 ソースコード(.cpp)に実装を書く
Hello, Worldをやってみた(1)

 PushButton をフォームに配置




 PushButton のclicked()シグナルをMainWindowの適
 当なスロット(sayHello())に接続

 フォームのヘッダファイルにsayHello()
 の項目(とQMessageBoxのinclude文)を追加
Hello, Worldをやってみた(2)

 フォームの.cppファイルに実コードを書く




 Ctrl + R で実行!
シグナル、スロット?

 C#でいうところのイベント、イベントハンドラ(デ
リゲート)みたいなもの?

 シグナル:発信側。イベントに相当?
 スロット:受信側。イベントハンドラによって実行
されるコールバックメソッドに相当?
こんなことができる

 SliderとSpin Boxの値を同期。コードを1行も書か
 ずに。




 全てデザイナ上でできちゃう。
何が嬉しいのか

 数値(ラベル)による表示
   数値のみでは、母数に対する割合が分かりづらい

   すなわち、表示が直感的でない



 そこでスライドバーを並べてみると
   現在値の割合が直感的に分かる
プレゼンタイマー作成に挑戦してみた
        (1)

 数値のみによるタイマーは、経過時間が直感的にわ
かりづらい。

 ならスライドバーを一緒につければいいじゃない。
プレゼンタイマー作成に挑戦してみた
         (2)

 DEMO
プレゼンタイマー作成に挑戦してみた
       (3)
プレゼンタイマー作成に挑戦してみた
        (4)

 1000ミリ秒ごとに関数が呼び出されるようにしてい
る。そこで値の更新を行っている。
まとめ

 2日間でQtを少し触ってみた
   Hello, World からプレゼンタイマー作成まで

 IDE、Qt Creator
   Visual Studioに似てる
    入力補完機能はいい感じ
    環境をレイアウトする自由度が低い

 .uiファイル(デザイン)の要素
   Uiクラスでアクセス可能

QtでHello, World!!