【发布时间】:2018-09-19 17:27:02
【问题描述】:
我将在我正在使用的 python b/c 中编写详细信息,但同样的问题应该适用于 C++。
假设我有一个 Gtk.Application 实例,它附加了两个单独的 Gtk.Window 对象。使用应用程序时,这些都并排显示。我们称它们为窗口 A 和 B
我想触发应用程序在窗口 A 和窗口 B 之间切换焦点,但我找不到方法。
方法:
Gtk.Window.set_focus(widget)将在同一窗口内的小部件之间切换焦点。方法:
Gtk.Widget.grab_focus()做同样的事情,只是它自动以调用实例为目标。方法:
Gtk.Application.get_windows()按最近焦点的顺序返回应用程序窗口列表。
当我在 B 集中注意力时调用 windowA.grab_focus() 时,它什么也不做。调用windowA.set_focus(windowA)也是一样的效果
似乎 GTK 只能控制窗口内焦点的变化,而不能控制不同窗口之间的焦点变化。这可能是有道理的,因为我可以看到为什么这个功能会被委托给窗口管理器。但似乎仍然应该有办法做到这一点。
【问题讨论】: