无法获取 GtkDrawingArea 小部件的 xid
Can't get xid of GtkDrawingArea widget
我正在尝试在 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(X 客户端 over Wayland),请使用
启动您的应用程序
GDK_BACKEND=x11 your-app
我正在尝试在 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(X 客户端 over Wayland),请使用
启动您的应用程序GDK_BACKEND=x11 your-app