如何将键盘焦点放在弹出式Gtk.Window上

我有一个弹出窗口(使用WINDOW_POPUP类型创建),其中包含一些小部件,包括文本条目.问题是当我点击它时,条目没有得到焦点,所以我无法输入任何内容.是否有任何标志我必须设置以允许窗口获得键盘焦点?

解决方法

您不能将WINDOW_POPUP用于需要焦点的gtk窗口.相反,您应该使用类型为GTK_WINDOW_TOPLEVEL的GtkWindow并调用一个函数(或方法)

GtkWindow *result = g_object_new(GTK_TYPE_WINDOW,"type",GTK_WINDOW_TOPLEVEL,NULL);
gtk_widget_set_can_focus(result,TRUE);
gtk_window_set_decorated(GTK_WINDOW(result),FALSE);
gtk_window_set_type_hint(GTK_WINDOW(result),GDK_WINDOW_TYPE_HINT_POPUP_MENU);
gtk_window_set_transient_for(GTK_WINDOW(result),main_top_level_window);

这对我有用……不幸的是,当这个’弹出窗口’被破坏时,窗口列表中的图标会闪烁

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...