我正在尝试在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。
最佳答案
我认为这是因为默认情况下Gtk + 3.0应用程序将直接通过Wayland运行。要强制应用通过XWayland(Wayland上的X客户端),请使用
GDK_BACKEND=x11 your-app
我猜这是多少X11 apps can be used on Wayland。