2012-03-24 4 views
1

저는 Python Gtk3 바인딩을 사용하는 파이썬으로 작성된 작은 응용 프로그램을 가지고 있습니다. 이 같은 시스템 아이콘 테마에서 응용 프로그램이로드 아이콘의 부 :X11없이 파이썬 Gtk3 바인딩 사용하기

def get_icon(name): 
    from gi.repository import Gtk 
    icon_theme = Gtk.IconTheme() 
    if icon_theme.has_icon(name): 
     return icon_theme.load_icon("status-red", 32, 0) 

이 정확히 내가 원하는 것을 - 아이콘을로드하고 나에게 GdkPixbuf.Pixbuf 인스턴스를 제공합니다.

내 단위 테스트를 실행하면 문제가 발생합니다. 나는이 코드를 테스트하는 테스트를 가지고 있으며, 테스트가 개발자 머신에서 실행된다면 모든 것이 잘 동작한다.

그러나 패키지는 (CI 프로세스의 일부로) 빌드되기 전에 자동으로 실행되며 응용 프로그램 패키지는 헤드리스 서버에서 작성됩니다. 그래서 내 질문은 : X11을 실행하지 않고 Gtk3에서 IconTheme 클래스를 사용하는 방법이 있습니까?

+2

아이콘 테마는 항상 '화면'과 연결되어있어 X11 없이는 얻지 못합니다. Xvfb 내에서 테스트를 실행하려고합니다. –

답변

1

디스플레이없이 X11에 컴파일 된 gtk +를 사용할 방법이 없습니다.

하지만 가상의 프레임 버퍼를 사용하는 X 서버 인 xvfb에서 testsuite를 실행할 수는 있지만 기존 터미널에서 실행하지 않아도되지만 여전히 X가 필요합니다.

xvfb-run.sh python testsuite.py