#author("2018-02-19T09:55:21+00:00","default:admin","admin") #author("2018-02-19T09:56:36+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 の本 --[[ソフトウェア設計及び演習2017:http://wiki.cis.iwate-u.ac.jp/~wiki/csd/index.cgi/2017/?p=%E8%B3%87%E6%96%9917]] -[[GTK+ 2.0 チュートリアル:http://takeposo.sakura.ne.jp/unix/setting/gtk_tutorial/]] ... 途中まで -[[GTK Tutorial:http://lmj.nagaokaut.ac.jp/~lu/programming/gtk_tut_ja/gtk_tut_ja.html]] ... Ver. が 1.2? -[[素人の独学GTK+3.0:http://uchigo.main.jp/gtk3/index.html]] -[[C言語でGTK+ 2を扱う上での幾つかのメモ(第1回):http://d.hatena.ne.jp/kakurasan/20100614/p1]] -[[C言語でGTK+ 2を扱う上での幾つかのメモ(第5回):http://d.hatena.ne.jp/kakurasan/20100624/p1]] *基本 [#fc997810] **ボタン付きウィンドウの作成 [#p2be5016] #include <gtk/gtk.h> /* ボタンがクリックされたときに呼び出される関数 */ static void cb_button_clicked (GtkWidget *button, gpointer user_data) { /* メインループを終了 */ 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] **gpointer [#q3b0f793] *GIOChannel [#x07dffe4] -[[GIOChannelの使い方:https://tech-blog.cerevo.com/archives/254/]] *未分類 [#pd0160e7] -[[キー入力の基礎:http://gtklab.osdn.jp/gtkim/GTKIM01.TXT]] -[[Key Valueを確認する:http://uchigo.main.jp/gtk3/chap15/chap15.html]]