- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-02-12T11:03:57+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) 8{
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]]