GTK+

您所在的位置:网站首页 gtk+程序设计 GTK+

GTK+

2024-07-12 11:45| 来源: 网络整理| 查看: 265

#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