這裡我們創建一個包含一個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 則留言