Linux 下從頭再走 GTK+-3.0 (二),gtk-3.0
僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗添加一個按鈕。
以 Hello,World!為例。
首先建立一個源檔案:example2.c 內容如下。
#include <gtk/gtk.h>//點擊按鈕後被調用的函數,用於輸出hello,worldstatic void print_msg (GtkWidget *button , gpointer data){ printf("Hello , world!\n");}static void activate (GtkApplication *app , gpointer data){ GtkWidget *win; //申明一個按鈕 GtkWidget *button; //申明一個盒容器,用於容納按鈕,控制大小 GtkWidget *button_box; win = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(win) , "Button test"); gtk_window_set_default_size(GTK_WINDOW(win) , 200 , 200); //建立一個盒容器,並設定水平放置 button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); //gtk_orientation_horizontal //將盒容器包含進window中 gtk_container_add(GTK_CONTAINER(win) , button_box); //建立一個按鈕,並帶有“My button” 的標籤 button = gtk_button_new_with_label("My button"); //串連訊號,讓點擊按鈕後,便調用 print_msg 函數 g_signal_connect(button , "clicked" , G_CALLBACK( print_msg ) , NULL);
//將按鈕放入盒容器中 gtk_container_add(GTK_CONTAINER(button_box) , button); //顯示window及其所有控制項 gtk_widget_show_all(win);}int main(int argc , char **argv){ GtkApplication *app; int app_status; app = gtk_application_new("org.gtk.exmple" , G_APPLICATION_FLAGS_NONE); g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); app_status = g_application_run(G_APPLICATION(app) , argc , argv); g_object_unref(app); return app_status;}
編譯,運行結果如下: