第2回~第3回の演習で実際に学んでもらう内容についてです. !!! 準備 * gtkの演習用にディレクトリを作成してください. 6< 8< % (cd ~; mkdir -p csd/gtk) >8 * csdは本講義用のディレクトリ(トップ) * csd/gtkは入門gtk+用のディレクトリ >9 !!! 演習内容 [教科書|http://wiki.cis.iwate-u.ac.jp/~wiki/csd2013/docs/GTK-book-all.pdf]第2章の内容をトレースし,中身を理解する. !! [step1] 空ウィンドウ作成 * csd/gtk/image-viewer/1 を作り, * image-viewer.c を(教科書ソース2-1どおりに)入力 * コンパイル,動作確認 6< * コンパイルコマンドは 8< gcc -o image-viewer image-viewer.c `pkg-config --cflags --libs gtk+-2.0` >8 * 動作確認は 8< ./image-viewer >8 * プログラムの終了はウィンドウの「×」ボタンか,プログラムを実行した端末ウィンドウで「Ctrl+C」 >9 * Makefile を作成してみる(参考:[[Makefileの書き方]]) 6< * 解答例 8< # $Id:$ # -*- coding:utf-8; -*- CC = gcc TRGS = image-viewer GTK2FLAG = `pkg-config gtk+-2.0 pango gdk-pixbuf-2.0 --cflags` GTK2LIBS = `pkg-config gtk+-2.0 pango gdk-pixbuf-2.0 --libs` CFLAGS = -g -Wall -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -I . all: $(TRGS) .c.o: $(CC) -c $< $(GTK2FLAG) $(CFLAGS) image-viewer: image-viewer.o $(CC) -o $@ $^ $(GTK2LIBS) image-viewer.o: image-viewer.c .PHONY: clean clean: rm -f *~ *.o $(TRGS) >8 >9 ((color red '''step1で理解すべき項目''')) * GTK+の関数を利用する場合のインクルードファイル指定,コンパイル・リンク法 * GTK+の初期化法 * ウィンドウの作成,大きさ変更,表示 !! [step2] 終了ボタンの追加 * csd/gtk/image-viewer/2 を作り, * image-viewer.c を(教科書ソース2-2どおりに)入力 * step1との差分をよく確認する 6< 8< (cd ~/csd/gtk; meld 1 2) 表示されたウィンドウでimage-viewer.cを選択(どちら側でもよい) >8 >9 * コンパイル,実行 * Makefile作成 ((color red '''step2で理解すべき項目''')) * ボタンウィジェットの作成,配置 * '''コンテナ''' * '''コールバック関数''','''イベント''' !! [step3] 画像の表示 * csd/gtk/image-viewer/3 を作り, * image-viewer.c を(教科書ソース2-3どおりに)入力 * step2との差分をよく確認する 6< 8< (cd ~/csd/gtk; meld 2 3) >8 >9 * コンパイル,実行 ** 実行の際,コマンドラインで「表示したい画像ファイル名」を指示すること * Makefile作成 ((color red '''step2で理解すべき項目''')) * イメージウィジェットの作成,配置法 * '''パッキングボックス'''