无法获取GtkDrawingArea小部件的xid

时间:2017-11-09 19:20:33

标签: python python-3.x ubuntu gtk wayland

我正在尝试使用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。

1 个答案:

答案 0 :(得分:0)

我认为这是因为默认情况下Gtk + 3.0应用程序将直接通过Wayland。要强制应用程序通过XWayland(X客户端 over Wayland),请使用

启动应用程序
GDK_BACKEND=x11 your-app

我想这是多少X11 apps can be used on Wayland