ボタン

2010年2月11日

ファイル

08-button.tar.gz

内容

ボタンを作ります。ここでは、ボタン配置のためにテーブルを使います。その前に、見栄えのため、ウインドウの端っこに隙間を作っておきます。

	gtk_container_set_border_width(GTK_CONTAINER(win), 5);

テーブルを作ります。隙間を設定し、ウインドウに追加します。

	table = gtk_table_new(2, 2, TRUE);
	gtk_table_set_row_spacings(GTK_TABLE(table), 2);
	gtk_table_set_col_spacings(GTK_TABLE(table), 2);
	gtk_container_add(GTK_CONTAINER(win), table);

gtk_table_new() の第 1, 2 引数はテーブルの行の数と列の数です。

ボタンを作ります。gtk_button_new_with_label() を使います。

	b1 = gtk_button_new_with_label("Button 1");
	b2 = gtk_button_new_with_label("Button 2");
	b3 = gtk_button_new_with_label("Button 3");
	b4 = gtk_button_new_with_label("Button 4");

ボタンをテーブルに配置します。

	gtk_table_attach_defaults(GTK_TABLE(table), b1, 0, 1, 0, 1);
	gtk_table_attach_defaults(GTK_TABLE(table), b2, 1, 2, 0, 1);
	gtk_table_attach_defaults(GTK_TABLE(table), b3, 0, 1, 1, 2);
	gtk_table_attach_defaults(GTK_TABLE(table), b4, 1, 2, 1, 2);

第 3 引数はボタンの左端に当たるテーブルの位置、同様に第 4, 5, 6 引数はそれぞれ右端、上端、下端。

ボタンのクリックイベントを拾います。

	g_signal_connect(b1, "clicked", G_CALLBACK(b1Clicked), NULL);
	g_signal_connect(b2, "clicked", G_CALLBACK(b2Clicked), NULL);
	g_signal_connect(b3, "clicked", G_CALLBACK(b3Clicked), NULL);
	g_signal_connect(b4, "clicked", G_CALLBACK(b4Clicked), NULL);

GTK+ プログラミング 目次へ