這裡我們創建一個包含一個2×2表格的視窗,表格中放入三個按鈕。前兩個按鈕將放在上面那行裡。而第三個,quit按鈕,放在下面那行,並佔據了兩列。這就是說它看起來應該像這樣:
原始碼如下:
#include <gtk/gtk.h> /* 我們的回呼。 傳到這個函式的資料被列印到標準輸出 */ static void callback( GtkWidget *widget, gpointer data ) { g_print ("Hello again - %s was pressedn", (char *) data); } /* 這個回呼退出程式 */ static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { gtk_main_quit (); return FALSE; } int main( int argc, char *argv[] ) { GtkWidget *window; GtkWidget *button; GtkWidget *table; gtk_init (&argc, &argv); /* 創建一個新視窗 */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* 設置視窗標題 */ gtk_window_set_title (GTK_WINDOW (window), "Table"); /* 為delete_event設置一個立即退出GTK的處理函式。 */ g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL); /* 設置視窗的邊框寬度。 */ gtk_container_set_border_width (GTK_CONTAINER (window), 20); /* 創建一個2x2的表格 */ table = gtk_table_new (2, 2, TRUE); /* 將表格放進主視窗 */ gtk_container_add (GTK_CONTAINER (window), table); /* 創建第一個按鈕 */ button = gtk_button_new_with_label ("button 1"); /* 當這個按鈕被點擊時,我們呼叫 "callback" 函式,並將一個 * 指向"button 1"的指標作為它的參數 */ g_signal_connect (button, "clicked", G_CALLBACK (callback), (gpointer) "button 1"); /* 將button 1插入表格的左上象限(quadrant) */ gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 1, 0, 1); gtk_widget_show (button); /* 創建第二個按鈕 */ button = gtk_button_new_with_label ("button 2"); /* 當這個按鈕被點擊時,我們呼叫 "callback" 函式,並將一個指向"button 2"的指標作為它的參數 */ g_signal_connect (button, "clicked", G_CALLBACK (callback), (gpointer) "button 2"); /* 將button 2插入表格的右上象限 */ gtk_table_attach_defaults (GTK_TABLE (table), button, 1, 2, 0, 1); gtk_widget_show (button); /* 創建"Quit"按鈕 */ button = gtk_button_new_with_label ("Quit"); /* 當這個按鈕被點擊時,我們呼叫 "delete_event" 函式接著程式就退出了 */ g_signal_connect (button, "clicked", G_CALLBACK (delete_event), NULL); /* 將退出按鈕插入表格的下面兩個象限 */ gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 2, 1, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_widget_show (window); gtk_main (); return 0; } « GTK+ 2.0 教學-用表格封裝 單元首頁 GTK+ 2.0 教學-元件概述 »
1 則留言