Я напишу подробности в 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()
возвращает список окон приложений в порядке последней фокусировки.
Когда я звоню windowA.grab_focus()
пока B сфокусирован, он ничего не делает.Тот же эффект для вызова windowA.set_focus(windowA)
Похоже, что GTK имеет возможность только контролировать изменения фокуса внутри окна, а не изменять фокус между разными окнами.Это может иметь смысл, так как я понимаю, почему эта функциональность будет делегирована диспетчеру окон.Но все равно кажется, что должен быть способ сделать это.