使用Python中的GTK和Xlib

4

我正在编写一些代码,需要从GTK+转换到Xlib。具体来说,我想将顶层窗口的图标设置为一个窗口本身,而不是一个pixmap,以编写GTK+ Window Maker dockapp。

我已经在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函数。有什么建议吗?

2个回答

2
您可以使用以下函数获取 Xlib.Display.Window 对象:d.create_resource_object("window", xid),其中 dXlib.display.Display 对象。

0

在 X 服务器将被 Wayland 组合器取代的时代,不确定使用 Xlib 是否明智。


1
正如我在问题中提到的,我的目标是编写一个Window Maker dockapp。据我所知,还没有讨论在Wayland下运行Window Maker本身的情况。事实上,几乎所有现有的Window Maker dockapp都是使用纯Xlib编写而成,没有使用任何工具包。 - profzoom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接