1:概述
Java 有WindowBuilder 來可視化構建界面, C++ 可以選擇QT 但是硬要用GTK 怎么辦呢? 使用Glade啊
安裝:
">sudo apt-get install glade
注意: 或者直接在Ubuntu的應用商店搜索安裝, Ubuntu搜索安裝會有三個, 最好自己試一試, 我選擇安裝最后一個成功.
2: 來 搞個界面出來
下面的這個注冊 直接關閉跳過
給按鈕設置 信號控制 也就是事件
3: 編寫代碼
#include <gtk/gtk.h> #include <stdio.h> //我們在UI中,為button1添加的點擊函數 void btn_click(GtkObject *object, gpointer user_data){ printf("5sssssssssssssssss"); gtk_main_quit(); } int main (int argc, char *argv[]) { GtkBuilder *builder; GtkWidget *window; GtkWidget *btn; gtk_init (&argc, &argv);//gtk初始化 builder = gtk_builder_new ();//指針分配空間 gtk_builder_add_from_file (builder, "lay1.glade", NULL);//讀取button.xml文件 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //創建窗口 window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));//獲取window串口使用權 btn= GTK_WIDGET(gtk_builder_get_object (builder, "btn")); //gtk_signal_connect(btn,"destroy",G_CALLBACK(btn_click),NULL); gtk_builder_connect_signals (builder, NULL);//連接響應事件 g_object_unref (G_OBJECT (builder)); //釋放xml內存空間 gtk_widget_show(window); gtk_main ();//事件響應函數 return 0; }
編譯出現問題: assertion 'GTK_IS_WIDGET (widget)' failed的解決辦法
參考 這邊博客解決辦法: https://www.cnblogs.com/dgwblog/p/12146591.html