ソフトウェア設計及び演習2017

GTK::最初のプログラム

例題プログラムの取り出し

作業場所を作る

 % mkdir ~/csd/gtk
 % cd ~/csd/gtk

例題プログラムを取り出す (svnコマンドについては,サブバージョンの使い方)

 % svn co http://svn.cis.iwate-u.ac.jp/svn/csd/Examples/gtk2/Basic
 % ls

コンパイル

 % make

コンパイル・オプションやリンク・オプションの指定方法は、Makefile を見てください.

実行

 % ./make-window 
 % ./hello
 % ./image

表示されたウィンドウや,ボタンなどをクリックした時の動きについて, ソースプログラムと対応させながら学んでください.

プログラムの説明

ウィンドウを作る (make-window.c, gtk_lib.c)

初期化 Window

  • 表示のための枠と領域
  • 大きさ,枠の幅,可視化

イベント待ちループ

  • gtk_main (ループ)を実行していて、
  • ウィンドウのメニューから閉じるを選ぶと、クローズイベントが起こる
  • gtk_main は、ウィンドウのクローズ処理関数を呼ぶ
  • 処理関数で gtk_main_quit により、gtk_main に終了を伝え、
  • gtk_main 関数に戻って実行が終了し、main へ制御が戻る.

イベント処理関数の設定と呼び出し

  • g_signal_connect で、ウィジェットとイベントの種類と処理関数を登録

日本語メッセージ付きのボタン (hello.c, gtk_lib.c)

ボタン

  • ラベル付きボタンを作り、可視化する
  • ボタンをウィンドウにのせる (ウィンドウと親子関係を結ぶ)

ラベル

  • Cの文字列のこと.日本語文字列はutf-8で.

ボタンクリックの動き

  • gtk_main (ループ)を実行していて、
  • クリックのイベントが起こると、
  • gtk_main は、クリックされたウィジェットのクリック処理関数を呼ぶ
  • gtk_main 関数に戻って実行が続けられる

トランプカードの画像を表示

プログラムの変更

  • ウィンドウの大きさや枠の幅を変えてみよう.
  • ボタンのクリック動作を変更してみよう.
  • 違うイメージを表示させてみよう.


最終更新日:2017/04/03 09:14:23