#author("2018-02-12T11:03:57+00:00","default:admin","admin") -[[The GTK+ Project:https://www.gtk.org]] -[[入門GTK+:http://wiki.cis.iwate-u.ac.jp/~wiki/csd2013/docs/GTK-book-all.pdf]] ... GTK+2.0 の本 -[[素人の独学GTK+3.0:http://uchigo.main.jp/gtk3/index.html]] *基本 [#fc997810] **ボタン付きウィンドウの作成 [#p2be5016] #include <gtk/gtk.h> /* ボタンがクリックされたときに呼び出される関数 */ static void cb_button_clicked (GtkWidget *button, gpointer user_data) 8{ /* メインループを終了 */ gtk_main_quit (); } int main (int argc, char** argv) { GtkWidget *window; /* GTK+の初期化およびオプション解析 */ gtk_init(&argc, &argv); /* ウィンドウの作成 */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* ウィンドウの大きさの設定 */ gtk_widget_set_size_request(window, 300, 200); { GtkWidget *button; /*ボタンの作成*/ button = gtk_button_new_with_label("Quit"); /* ボタンをウィンドウに配置 */ gtk_container_add(GTK_CONTAINER (window), button); /* ボタンがクリックされたときに呼び出される関数の設定 */ g_signal_connect(G_OBJECT (button), "clicked", G_CALLBACK (cb_button_clicked), NULL); } /* ウィンドウの表示 */ gtk_widget_show_all(window); /*メインループ*/ gtk_main(); return 0; } -gtk_init() --GTK+ の初期化を行ったり,GTK+ 共通のオプションを解析する関数 --GTK+ でアプリケーションを作成する場合には,必ずこの関数をはじめに呼び出す必要がある -gtk_window_new() --ウィンドウを作成 --引数には作成するウィンドウの種類を指定 ---GTK WINDOW TOPLEVEL ... アプリケーションのメインになるようなウィンドウ ---GTK WINDOW POPUP ... マウスをク リックしたときにポップアップで表示されるようなウィンドウ -gtk_widget_set_size_request() --ウィンドウの大きさ、幅、高さを指定 -gtk_button_new_with_label() --ラベル付きボタンの生成 -gtk_container_add() --指定コンテナに、指定ウィジェットを配置 -gtk_widget_show_all() --引数に指定したウィジェット内に配置されたすべてのウィ ジェットを表示 -g_signal_connect() --第 1 引数:コールバック関数を関連付けるオブジェクト --第 2 引数:シグナル名 --第 3 引数:コールバック関数 --第 4 引数:コールバック関数に渡すデータ **イメージウィジェット [#r33c34f5] **メニューバー [#mf1c0840] *ウィジェット [#edb4995e] *シグナル [#e33edd66] -enter ... マウスポインタがボタン領域に入ったときに発生するシグナル -leave ... マウスポインタがボタン領域から出たときに発生するシグナル -pressed ... ボタンが押されたときに発生するシグナル -released ... ボタンが離されたときに発生するシグナル -clicked ... ボタンを押して離すという一連の動作,すなわちボタンがクリックされたときに発生するシグナル *コールバック関数 [#u4102350]