【问题标题】:Is there a way to switch focus between windows in a single GTK application?有没有办法在单个 GTK 应用程序中的窗口之间切换焦点?
【发布时间】: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 只能控制窗口内焦点的变化,而不能控制不同窗口之间的焦点变化。这可能是有道理的,因为我可以看到为什么这个功能会被委托给窗口管理器。但似乎仍然应该有办法做到这一点。

【问题讨论】:

    标签: gtk gtk3 pygtk


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      相关资源
      最近更新 更多