窗口最小化时调用的Gtk事件是什么?

App*_*ker 4 c gtk events signals

如果我希望在窗口关闭时调用某些函数,我会连接delete_event.如果我希望在用户最小化Gtk窗口时调用该函数,我应该连接什么.像这样的东西:minimize_event?我在文档中找不到任何内容.

Red*_*met 5

我在同一个十字路口,只有python gtk上的一些信息和代码,但不是在C.

在一次又一次地查看文档后,我意识到我被同名的声音,工会,结构,枚举和位域混淆了.我把事情当作布尔人来处理,当时它总是一点点的东西.

第一:

g_signal_connect(
    G_OBJECT(window), 
    "window-state-event", 
    G_CALLBACK(callback_func), 
    userDataPointer);
Run Code Online (Sandbox Code Playgroud)

然后:

gboolean callback_func(
    GtkWidget *widget,
    GdkEventWindowState *event,
    gpointer user_data)
{
    //some code
    //Minimized window check
    if(event->new_window_state & GDK_WINDOW_STATE_ICONIFIED){
    //some other code
}
//some more other code
return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

记住这是位域,并且&是"位和"运算符而不是布尔值&&. GDK_WINDOW_STATE_ICONIFIED =210在二进制和event->new_window_state是一个int其中的第二位是活性

Widget可以同时最大化最小化, GDK_WINDOW_STATE_MAXIMIZED = 4或者100

如果您将最大化窗口最小化为event->new_window_state = 6110或110

您可以尝试并查看最适合您的方法.

更多信息:

最后注意和警告:

我正在使用gtk + 2,因为双赢和林开发.较新的gtk + 3可能会做一些不同的事情.

侏儒开发者网站,网站上有一些链接损坏或错误,或部分重新writen,有一些错误.我上面的第一个网址上的页面有

gboolean user_function (GtkWidget *widget,GdkEvent  *event,gpointer user_data){}
Run Code Online (Sandbox Code Playgroud)

虽然源代码中的手册以及其他可下载的手册具有正确的:

gboolean user_function (
    GtkWidget *widget,
    GdkEventWindowState *event, 
    gpointer user_data){}
Run Code Online (Sandbox Code Playgroud)

该页面还包含gtk3页面GdkEventWindowState错误或断开链接.基于GTK + 3版似乎错了,因为在GTK + 2,我还没有看到GTK + 3本手册的源代码或独立的,所以我不知道,如果GTK + 3真正改变事件的回调和GDK结构

目前为gtk + 3稳定*期望*不一致.最好使用源代码或Linux发行版和版本gtk + 2附带的手册.

我希望这有帮助.