#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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS