Получить активное окно GTK в Python - PullRequest
3 голосов
/ 12 ноября 2010

Как бы я получить дескриптор для активного gtk.Window в Python?(не окно, которое я создал, а текущее окно).

Ответы [ 2 ]

4 голосов
/ 13 ноября 2010

Ответ на самом деле не зависит от ОС - вы можете сделать это в GTK.Вы можете получить список всех окон верхнего уровня из приложения, используя gtk.window_list_toplevels(), затем перебирайте его, пока не найдете тот, где window.is_active() возвращает True.

Если вы хотите рассмотреть другие окна, кромеиз вашего приложения, тогда вы можете попробовать gtk.gdk.screen_get_default().get_toplevel_windows(), но вы получите только окна GDK, а не окна GTK, потому что у вас нет возможности узнать, действительно ли эти окна GDK связаны с окнами GTK.

0 голосов
/ 26 мая 2017

[Примечание: это отвечает на вопрос в том виде, в котором ОП сформулировал его, который, вероятно, будут искать другие читатели - не совсем другой вопрос, на который они изменили его в комментариях к другому ответу.]

Если у вас есть GtkApplication и вы добавили к нему свои GtkWindow - что вам, вероятно, следует сделать, потому что GtkApplication может сделать много действительно крутых вещей!- тогда вы можете использовать намного более простой API GtkApplication, предназначенный для этой цели:

gtk_application_get_active_window():

Получает «активное» окно дляприложение.

Активное окно - это последнее окно, которое было сфокусировано (в приложении).Это окно может не иметь фокуса в данный момент, если оно есть у другого приложения - это только последнее окно в этом приложении.

, что в терминах Python предположительно your_application.get_active_window().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...