2017-11-09 16 views
1

파이썬 3.6에서 파이썬 -vlc와 Gtk를 사용하여 GUI 애플리케이션을 만들려고합니다. 내 GtkDrawingArea 위젯의 XID에 액세스하려고 할 때 (내 플레이어의 화면을 바인딩), 나는 오류 메시지가GtkDrawingArea 위젯의 xid를 가져올 수 없습니다.

AttributeError를 얻을 : 'GdkWaylandWindow'객체에는 속성이 없습니다 'get_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) 

그래서, 어떻게이 위젯 내 플레이어를 결합 않은 : 나는 GtkDrawingArea 위젯의 XID를 가져 오기 위해 노력하고있어 코드의 부분은?

PS - 기본적으로 Gnome 셸을 사용하는 운영체제로 우분투 17.10을 사용하고 있습니다.

+2

X 윈도우 시스템에서 윈도우의 ID를 참조하기 때문에 xid라고합니다. Wayland는 X 윈도우 시스템이 아니므로 윈도우에 xids가 없습니다. –

+0

로그인 기어 아이콘에서 Xorg에서 Ubuntu를 선택하십시오. Gstreamer wayland sink의 wayland 검색을 시도하고 싶다면. –

+0

이상하게도 PyGTK2를 사용하는 오래된 앱을 유지하고 있으며'self.player.set_xwindow (self.window.xid)'가 작동합니다 : \ – Phoenix87

답변

0

Gtk + 3.0 응용 프로그램이 기본적으로 Wayland를 통해 직접 실행된다는 사실이 원인이라고 생각합니다. XWayland ( WAYLAND 통해 X 클라이언트 )을 통과하기 위해 응용 프로그램을 강제로

GDK_BACKEND=x11 your-app 

사용하여 응용 프로그램을 시작 나는 이것이 얼마나 많은 X11 apps can be used on Wayland 것 같다.

+0

고마워요! 이것은 도움이 :) –