我有一个基于空地的 gtk3 用户界面,并且我为几个菜单项设置了加速器字段。
我不确定 GtkBuilder 在加载林间空地文件时到底在幕后做了什么(使用全局 GtkAccelGroup?),但最终结果是,当我隐藏菜单栏时,加速器快捷键停止工作。
我想知道是否有一种方法可以让加速器在菜单不可见的情况下工作,同时仍然尽可能地坚持空地。
也许您可以尝试将加速器不固定在菜单上,而是将其固定在应用程序的更高一级,例如窗口?在我自己的应用程序中,我这样做。
accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (GTK_WINDOW (pad), accel_group);
pad->priv->menu = menu_get_popup_no_highlight (pad, accel_group);
pad->priv->highlight_menu = menu_get_popup_highlight (pad, accel_group);
gtk_accel_group_connect (accel_group, GDK_KEY_Q, GDK_CONTROL_MASK, 0, g_cclosure_new_swap (G_CALLBACK (xpad_app_quit), pad, NULL));
这两个菜单分配有自己的加速器,即使在不可见时也可以工作。
这对你有帮助吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)