2015-03-30 3 views
2

В Python, как я могу получить активное окно root (или экран, если хотите) с помощью gtk.gdk? Я ищу кросс-платформенное решение.Получение активного корневого окна с использованием gtk.gdk в Python

Ниже код возвращает все мои три монитора

gtk.gdk.get_default_root_window() 

К активному корневому окну, я был бы счастлив ни с одной курсора находится в данный момент, или один сфокусированное окно на.

Потенциально полезные ссылки:

[1] python pygtk how to put a window on a specific display monitor

EDIT: я попытался реализовать решение, описанное в ссылке # 1, однако screen.get_active_window() возвращает None и не экземпляр gtk.gdk.Window.

ответ

0

Это вы должны получить активное окно:

from gi.repository import Gdk 
active_window = Gdk.get_default_root_window().get_screen().get_active_window() 

или если вы используете PyGTK

from gtk import gdk 
active_window = gdk.get_default_root_window().get_screen().get_active_window() 

active_window является Gdk.Window (gtk.gdk.Window для PyGTK).

+0

Как я уже говорил в своем главном сообщении 'get_active_window()' return 'None'. Я подозреваю, что это потому, что я нахожусь в Windows, поскольку, похоже, работает на моем ноутбуке Lubuntu. Мне нужно кросс-платформенное решение. – miestasmia

+2

Боюсь, я не могу помочь вам с решением, которое также работает в Windows. Вы также должны учесть в своем вопросе, что вы ищете кросс-платформенное решение. – elya5

+0

Отредактировал мой вопрос, чтобы включить кросс-платформу. – miestasmia