在单个GTK应用程序中,有没有一种方法可以在窗口之间切换焦点? 我将用Python B/C写详细信息,这就是我所使用的,但是同样的问题应该应用于C++中。

在单个GTK应用程序中,有没有一种方法可以在窗口之间切换焦点? 我将用Python B/C写详细信息,这就是我所使用的,但是同样的问题应该应用于C++中。,gtk,gtk3,pygtk,Gtk,Gtk3,Pygtk,假设我有一个Gtk.Application实例,它附加了两个独立的Gtk.Window对象。在使用应用程序时,这两个选项将并排显示。我们把它们叫做A窗口和B窗口 我想触发应用程序在窗口A和窗口B之间切换焦点,但我找不到方法 方法:Gtk.Window.set_focus(小部件)将在同一窗口内的小部件之间切换焦点 方法:Gtk.Widget.grab_focus()只会自动将调用实例作为目标 方法:Gtk.Application.get_windows()按最近焦点的顺序返回应用程序窗口列表

假设我有一个
Gtk.Application
实例,它附加了两个独立的
Gtk.Window
对象。在使用应用程序时,这两个选项将并排显示。我们把它们叫做A窗口和B窗口

我想触发应用程序在窗口A和窗口B之间切换焦点,但我找不到方法

  • 方法:
    Gtk.Window.set_focus(小部件)
    将在同一窗口内的小部件之间切换焦点

  • 方法:
    Gtk.Widget.grab_focus()
    只会自动将调用实例作为目标

  • 方法:
    Gtk.Application.get_windows()
    按最近焦点的顺序返回应用程序窗口列表

当我调用windowA.grab_focus()时,当B聚焦时,它什么也不做。调用
windowA的效果相同。设置焦点(windowA)

GTK似乎只有控制窗口内焦点变化的能力,而没有控制不同窗口间焦点变化的能力。这是有道理的,因为我可以理解为什么这个功能会被委派给窗口管理器。但似乎还是有办法做到这一点。

你可能想要。这将聚焦窗口并将其升高到顶部。它将自动聚焦默认小部件