我创建了一个复合小部件,其中webkit_webview小部件存储在带有gtkvbox基本小部件的scrollwed窗口中。如果任何包含的小部件具有焦点,那么如何使基本gtkvbox小部件处于焦点状态?具体来说,我正在尝试添加只有在复合控件处于焦点时才处于活动状态的加速器。要确定复合控件是否处于焦点状态,我调用gtk_widget_get_focused(),然后遍历控件父项来查找基础控件。似乎应该有更好的方法。gtk复合小部件焦点
3
A
回答
1
一次只有一个小部件可以具有全局输入焦点,这是用户在屏幕上看到的焦点以及击键的出现位置。如果gtk_widget_has_focus(widget)
返回TRUE
那么widget
具有全局输入焦点。您不能让webview和vbox同时拥有全局输入焦点。
你可以做的是在复合控件的父级上调用gtk_container_get_focus_child()
,如果返回值是你的复合控件,那么焦点位于复合控件的某个位置。
或者您可以连接到复合小部件上的"focus-in-event"
和"focus-out-event"
信号。我相当肯定,当其中一个包含的小部件获得或失去焦点时,它们会通知您。 (请记得先在你的小部件上打电话gdk_window_set_events(widget->window, gdk_window_get_events(widget->window) | GDK_FOCUS_CHANGE_MASK)
,正如GTK文档中所解释的那样)。
相关问题
- 1. Gtk焦点的历史?
- 2. 禁用tkinter小部件的焦点?
- 3. 使Tkinter小部件成为焦点
- 4. 搜索gtk小部件
- 5. 堆叠GTK +小部件
- 6. GTK聚焦事件
- 7. GWT复合小部件
- 8. 如何复制或复制gtk小部件?
- 9. 哪个GTK小部件组合可用于小部件的可滚动列?
- 10. gtk#在按钮上点击添加小部件点击
- 11. 处理复合小部件的事件
- 12. pygtk - 动态更新从gtk组合框输入的小部件
- 13. 有没有好的方法来复制一个Gtk小部件?
- 14. Android小工具:关注焦点,点击效果部件
- 15. 如何在点击外面隐藏Gtk小部件?
- 16. Gtk#+ MonoDevelop:如何弹出按钮点击自定义小部件
- 17. GTK#在点击窗口小部件时删除initialText
- 18. JTable - 复合编辑器焦点
- 19. gtk +:GtkFileChooserDialog隐藏一些小部件
- 20. Gtk小部件出现延迟
- 21. Glade GTK访问个别小部件
- 22. Gtk +编程风格:定义小部件
- 23. 为GTK小部件设置WNDCLASS风格
- 24. 在GTK#小部件中使用泛型
- 25. 不在Gtk窗口中的小部件
- 26. 重叠窗口小部件gtk
- 27. 在GTK中访问小部件+
- 28. 如何旋转gtk小部件?
- 29. gtk cellrenderer显示一个小部件
- 30. 拨号/仪表GTK小部件