1

我正在尝试在 Python 3.6 中使用 python-vlc 和 Gtk 创建一个 GUI 应用程序。但是当我尝试访问我的 GtkDrawingArea 小部件的 xid (将它与我的播放器屏幕绑定)时,我收到一条错误消息

AttributeError:“GdkWaylandWindow”对象没有属性“get_xid”

这是我试图获取 GtkDrawingArea 小部件的 xid 的代码部分:

def vlc_realize_handler(self, widget, data=None):
    self.win_id = widget.get_property('window').get_xid()
    self.player.set_xwindow(self.win_id)

那么,如何将我的播放器与这个小部件绑定?

PS - 我使用 Ubuntu 17.10 作为我的操作系统,默认情况下使用 Gnome shell。

4

1 回答 1

1

我认为这是由于 Gtk+ 3.0 应用程序默认会直接通过 Wayland 运行造成的。要强制应用程序通过 XWayland(Wayland 上的 X 客户端,请使用以下命令启动您的应用程序

GDK_BACKEND=x11 your-app

我猜这就是在 Wayland 上可以使用多少X11 应用程序。

于 2017-11-21T00:15:13.007 回答