Есть ли способ переключить фокус между окнами в одном приложении GTK? - PullRequest
0 голосов
/ 19 сентября 2018

Я напишу подробности в 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 имеет возможность только контролировать изменения фокуса внутри окна, а не изменять фокус между разными окнами.Это может иметь смысл, так как я понимаю, почему эта функциональность будет делегирована диспетчеру окон.Но все равно кажется, что должен быть способ сделать это.

1 Ответ

0 голосов
/ 20 сентября 2018

Возможно, вы хотите GtkWindow.present () .Это сфокусирует окно и поднимет его наверх.Он автоматически сфокусирует виджет по умолчанию.

...