Использование GTK и Xlib в Python

Я пишу код, в котором мне нужно перейти от GTK+ к Xlib. В частности, я хотел бы, чтобы значок окна верхнего уровня был самим окном, а не растровым изображением, чтобы написать док-приложение GTK+ Window Maker.

Я заставил это работать в C следующим образом:

gdkDockapp = gtk_widget_get_window(dockapp);
xDockapp = GDK_WINDOW_XID(gdkDockapp);

gdkDisplay = gdk_window_get_display(gdkDockapp);
xDisplay = GDK_DISPLAY_XDISPLAY(gdkDisplay);

wmhints.icon_window = xDockapp;
wmhints.flags = IconWindowHint;
XSetWMHints(xDisplay, xDockapp, &wmhints);  

Тем не менее, я надеюсь на самом деле закодировать свое приложение на Python. Когда я пытаюсь преобразовать код, например,

gdkDockapp = dockapp.get_window()
xDockapp = gdkDockapp.get_xid()

возвращается long, а не Window, поэтому я не могу выполнить ни одну из функций Xlib. Какие-либо предложения?


person profzoom    schedule 18.11.2012    source источник


Ответы (2)


Вы можете получить объект Xlib.Display.Window с помощью этой функции: d.create_resource_object("window", xid), где d — это объект Xlib.display.Display.

person Alexander Vasilyev    schedule 19.11.2012

Не уверен, что использование Xlib является мудрым шагом во времена, когда X-сервер должен исчезнуть в пользу композитора Wayland.

person liberforce    schedule 19.11.2012
comment
Как я уже упоминал в вопросе, моя цель — написать док-приложение Window Maker. Насколько мне известно, не было обсуждения запуска самого Window Maker под управлением Wayland. На самом деле почти все существующие док-приложения Window Maker написаны с использованием чистой Xlib без каких-либо наборов инструментов. - person profzoom; 19.11.2012