2008年10月21日火曜日

ウィジェット (2008/10/21)

感想
今回はGTK+と言うものを初めて触ったけれどまだ本当に最初なので特に問題はなかった。
進行具合はとりあえずウインドウにボタンを付けた所まで。コールバックなどはまだ実装していません


プログラムソース
#include

int main(int argc, char *argv[]){
GtkWidget *window;
GtkWidget *button1;
GtkWidget *button2;
GtkWidget *button3;
GtkWidget *button4;
GtkWidget *button5;
GtkWidget *hbox;
GtkWidget *table;

/* 初期化とパラメータの指定 */
gtk_init(&argc, &argv);

/* ウインドウの作成。まだ非表示 */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

/*パッキングボックス・テーブルの作成*/
hbox = gtk_hbox_new (FALSE, 3);

table = gtk_table_new (3,3,FALSE);

/*ウインドウにパッキングボックス・テーブルを追加*/
gtk_container_add(GTK_CONTAINER(window), hbox);
gtk_container_add(GTK_CONTAINER(window), table);

//-----------------------------------------------------------------------
//ボタン

//------------Button1-------------------------------------
/*ボタンの作成。まだ非表示*/
button1 = gtk_button_new_with_label("Button1");
/*パッキングボックスにウィジェットを追加する*/
gtk_box_pack_start(GTK_BOX(hbox), button1, FALSE, FALSE, 0);

//------------Button2-------------------------------------
button2 = gtk_button_new_with_label("Button2");
gtk_box_pack_start(GTK_BOX(hbox), button2, FALSE, FALSE, 0);

//------------Button3-5------------------------------------
gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 0);

/* 1×1のボタンを0-1, 0-1に配置 */
button3 = gtk_button_new_with_label("Button3");
gtk_table_attach_defaults(GTK_TABLE(table), button3, 0 , 1, 0, 1);

/* 1×1のボタンを1-2, 1-2に配置 */
button4 = gtk_button_new_with_label("Button4");
gtk_table_attach_defaults(GTK_TABLE(table), button4, 1, 2, 1, 2);

/* 1×1のボタンを2-3, 2-3に配置 */
button5 = gtk_button_new_with_label("Button5");
gtk_table_attach_defaults(GTK_TABLE(table), button5, 2, 3, 2, 3);

//-----------------------------------------------------------------------

/*隙間を作る*/
gtk_container_set_border_width (GTK_CONTAINER(window), 10);

/*可視化*/
gtk_widget_show_all (window);

/* 実行部をメインループへ渡す。ハンドラは一切なし */
gtk_main();

/* ステータスコードの終了 */
return 0;

}


参考資料
http://www.elf.info.gifu-u.ac.jp/terada/Lecture/GTK/index.html
http://www.elf.info.gifu-u.ac.jp/terada/programming/jikken3/index.html

0 件のコメント: