○開発環境の確認
・バージョンの確認
# gtk-config --version
1.2.7
ドキュメントに Gtk+ Version 1.2.7にて開発した旨を記述する。
・インクルードファイルのパスの確認
# gtk-config --cflags
-I/usr/lib/glib/include -I/usr/X11R6/include
・ライブラリファイルのパスの確認
# gtk-config --libs
-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdunamic -lgmodule -lglib -ldl -lxi -lxext -lx11 -lm
これらより,ビルド(コンパイル&リンク)する為には,下記のようなコマンドになります。
gcc -o 実行ファイル名 ソースファイル名.c -I/usr/lib/glib/include -I/usr/X11R6/include -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdunamic -lgmodule -lglib -ldl -lxi -lxext -lx11 -lm
エディタで編集して,保存しておいて,
# sh ファイル名
などとすればいちいち入力しなくて良くなりますね。
○最初はやっぱりこれでしょ?
ウィンドウを生成して,そこにウィジットと呼ばれるコンポーネントの中から,ラベルを呼び出して文字を書いてみます。
#include <gtk/gtk.h>
int main(int argc, char *argv[]){
GtkWidget *window;
GtkWidget *label;
gtk_init(&argc, &argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
label=gtk_label_new("Hello World!!");
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show(label);
gtk_widget_show(windows);
gtk_main();
return 0;
}
処理内容は下記の通りです。
・gtk+ヘッダをインクルード
・main関数から処理を開始
・最初に必ず gtk_init関数を呼び出す
・ウィンドウ定義
・ラベル定義
・gtk_widget_show関数にて,ウィンドウ表示
・gtk_main関数にて,メッセージを待つループに入る(gtk+はメッセージ駆動型言語)
・returnで関数を抜けて処理終了
【注意】
終了ボタンの無いウィンドウシステムで実行すると,停止できなくなります(多分)