- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2017-11-14T14:28:53+00:00","default:admin","admin")
#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]