2011-01-04 4 views
2

Python-Clutter에서 X11 디스플레이를 어떻게 설정합니까? XSCREENSAVER_WINDOW로 설정하려고합니다. 나는 clutter.x11 가져 오기 시도하고 set_display(), 사용하여 있지만이 올바른 명령을 보이지 않습니다. 누구든지 이것을하는 올바른 방법을 알고 있습니까?Python 클러 터 : 디스플레이 설정?

+1

this example를 참조 (이 많이 변경되었습니다) 파이썬과 혼란을 사용하는 방법에 대한 간단한 개요를

class GsThemeWindow(gtk.Window): __gtype_name__ = 'GsThemeWindow' def __init__(self): super(GsThemeWindow, self).__init__() self.connect("destroy", gtk.main_quit) def do_realize(self): ident = os.environ.get('XSCREENSAVER_WINDOW') if not ident is None: self.window = gtk.gdk.window_foreign_new(int(ident, 16)) self.window.set_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.STRUCTURE_MASK) x, y, w, h, depth = self.window.get_geometry() self.size_allocate(gtk.gdk.Rectangle(x, y, w, h)) self.set_default_size(w, h) self.set_decorated(False) else: self.window = gtk.gdk.Window( self.get_parent_window(), width=self.allocation.width, height=self.allocation.height, window_type=gtk.gdk.WINDOW_TOPLEVEL, wclass=gtk.gdk.INPUT_OUTPUT, event_mask=self.get_events() | gtk.gdk.EXPOSURE_MASK) self.window.set_user_data(self) self.style.attach(self.window) self.set_flags(self.flags() | gtk.REALIZED) 


이 스크립트를 실행하기 전에 DISPLAY 환경 변수를 설정 시도이 있거나 이후에, 예. 'export DISPLAY = ': 0.0 '' 또는'os.environ ['DISPLAY '] =': 0.0 ''? –

+0

이것이 스크린 세이버이기 때문에 효과가 있을지 의심 스럽습니까? 너는 내가 이것을 완전히 이해하지 못함을 염두에 두라. 그것을 줄 것이다. –

답변

0

내가 검색 할 때 this thread을 찾았고 아바타 그림을보고 내 스레드라고 가정합니다.) LemursDontExist 코드를 게시하여 모두 하나로 표시합니다.


짧은 설명 : 그것은이 같은 윈도우 시스템에 의해 호출 된 경우 의미 화면 보호기으로 실행 경우 X 윈도우 프로그램 검사에서 프로그램을 스크린 세이버를 확인합니다. 이는 환경 변수 DISPLAYXSCREENSAVER_WINDOW으로 설정되어 있는지 확인하여 수행됩니다.

이 경우 프로그램은 전체 화면으로 이동하여 특정 이벤트에 반응해야합니다. 바로 아래 코드가하는 일입니다. 이 변수를 설정하는 것은 xscreensaver 응용 프로그램을 통해 이루어 지므로 직접하지 마십시오.

누락 된 부분은 clutter-gtk 파이썬 바인딩입니다. 현재 우분투에서는 패키지 이름이 gir1.2-clutter-gtk-0.10입니다. 이를 통해 사용자 정의 창 클래스를 혼란스러운 API와 함께 사용할 수 있습니다. ,

관련 문제