GTK+ |
您所在的位置:网站首页 › gtk+程序设计 › GTK+ |
#include #include "myapp.h"#include "myappwindow.h" //使用到我们封装的 MyAppWindow 提供的接口 //利用C语言结构,创建 MyApp 类型, 其父类型为 GtkApplicationstruct _MyApp{ GtkApplication parent;}; //同样定义 MyAppClass 类struct _MyAppClass{ GtkApplicationClass parent_class;}; //利用G_DEFINE_TYPE 宏,注册定义 MyApp 类型 , 对应参数分别代表:类型名 , 小写类型名(用下划线分隔) , 父类型G_DEFINE_TYPE ( MyApp , my_app , GTK_TYPE_APPLICATION ); //my_app初始化函数原型static void my_app_init (MyApp *app){ }//my_app activate 信号原型 , 相当于之前几节我们手动链接的 activate 函数static void my_app_activate (GApplication *app){ MyAppWindow *win; //因此在这里面创建窗口,用我们封装好的 MyAppWindow win = my_app_window_new ( MY_APP(app) ); //将窗口放在前台 , 自动调用 gtk_widget_show_all() gtk_window_present (GTK_WINDOW(win));}//处理命令行参数的函数原型 static void my_app_open (GApplication *app , GFile **files , gint n_files , const gchar *hint){ GList *windows; MyAppWindow *win; int i; windows = gtk_application_get_windows ( GTK_APPLICATION(app) ); if(windows) win = MY_APP_WINDOW( windows->data ); else win = my_app_window_new ( MY_APP(app) ); for(i = 0; i activate = my_app_activate; G_APPLICATION_CLASS (class) ->open = my_app_open;} //这是向外提供的接口,不用加 static 修饰。 MyApp *my_app_new (void){ //按照我们创建的类型创建一个 MyApp return g_object_new ( MY_APP_TYPE , "application-id" , "org.gtk.myapp" , "flags" , G_APPLICATION_HANDLES_OPEN , NULL);} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |