有没有办法在单个GTK应用程序中的窗口之间切换焦点?

时间:2018-09-19 17:27:03

标签: gtk gtk3 pygtk

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

1 个答案:

答案 0 :(得分:2)

您可能想要GtkWindow.present()。这将使窗口聚焦并将其提升到顶部。它将自动聚焦默认窗口小部件。