Рисуйте прямо в корневом окне с помощью PyCairo

Я хочу иметь возможность рисовать непосредственно в корневом окне Python, используя Cairo. Я тестировал отрисовку кода в полноэкранном окне, поэтому знаю, что проблема не в этом. Однако, когда я пытаюсь рисовать прямо в корневом окне, вот так:

root = gtk.gdk.get_default_root_window()
cr = root.cairo_create()
...
# Drawing code here

Ничего не произошло. Код работает нормально, но на экран ничего не выводится. Есть ли способ сделать это, или мне нужно наложить прозрачное окно поверх всего? (Проблема с этим решением заключается в настройке нескольких мониторов)


person zachtib    schedule 07.06.2011    source источник
comment
Вы используете какую-то среду рабочего стола, например gnome? Они используют полноэкранное окно рабочего стола, которое фактически закрывает реальное корневое окно. Вы не видите корневое окно, когда эти среды работают.   -  person Keith    schedule 07.06.2011
comment
stackoverflow.com/questions/1934442/ вот какой-то perl, который может найти рабочий стол.   -  person eexpress    schedule 15.11.2011
comment
stackoverflow.com/questions/1934442/ вот какой-то perl, который может найти рабочий стол.   -  person eexpress    schedule 15.11.2011


Ответы (1)


Виртуальное корневое окно.

Обратите внимание, что KDE4 не следует этому соглашению. Вам нужно найти дочерний элемент корневого окна, для свойства _NET_WM_WINDOW_TYPE которого установлено значение _NET_WM_WINDOW_TYPE_DESKTOP.

person n. 1.8e9-where's-my-share m.    schedule 07.06.2011