QtでHello, World!!

16
2012/4/21 ままままままま Qt で Hello, World!!

description

Qt @福岡 第7回勉強会(http://atnd.org/events/26204)での発表スライドです。

Transcript of QtでHello, World!!

Page 1: QtでHello, World!!

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

QtでHello, World!!

Page 2: QtでHello, World!!

動機

@vivisuke氏にかねてよりQtのお誘いを受けていた

魔法の言葉「ちょっと今忙しいんで」

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

ちょっとだけなら…… ←今ここ

Page 3: QtでHello, World!!

レベル

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

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

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

Page 4: QtでHello, World!!

Qt Creator

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

画面要素

インスペクタ

ファイル一覧(選択時)

Page 5: QtでHello, World!!

参考: Visual Studio

画面要素ファイル一覧

インスペクタ

Page 6: QtでHello, World!!

(簡単な) GUIプログラム作成の手順

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

GUIで指定

ヘッダファイル (.h)に定義を書くソースコード (.cpp)に実装を書く

Page 7: QtでHello, World!!

Hello, Worldをやってみた(1)

PushButton をフォームに配置

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

フォームのヘッダファイルに sayHello() の項目(とQMessageBoxの include文)を追加

Page 8: QtでHello, World!!

Hello, Worldをやってみた(2)

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

Ctrl + R で実行!

Page 9: QtでHello, World!!

シグナル、スロット?

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

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

Page 10: QtでHello, World!!

こんなことができる

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

全てデザイナ上でできちゃう。

Page 11: QtでHello, World!!

何が嬉しいのか

数値(ラベル)による表示 数値のみでは、母数に対する割合が分かりづらい すなわち、表示が直感的でない

そこでスライドバーを並べてみると 現在値の割合が直感的に分かる

Page 12: QtでHello, World!!

プレゼンタイマー作成に挑戦してみた(1)

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

ならスライドバーを一緒につければいいじゃない。

Page 13: QtでHello, World!!

プレゼンタイマー作成に挑戦してみた(2)

DEMO

Page 14: QtでHello, World!!

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

Page 15: QtでHello, World!!

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

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

Page 16: QtでHello, World!!

まとめ

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

IDE、Qt Creator Visual Studioに似てる

入力補完機能はいい感じ 環境をレイアウトする自由度が低い

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