我将在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只能控制窗口内焦点更改,而不能控制不同窗口之间的焦点更改。当我看到为什么将此功能委托给窗口管理器时,这可能很有意义。但是似乎仍然应该有一种方法。