2015-02-01 5 views
1

그리기 영역의 투명한 배경을 설정하는 데 문제가 있습니다. 버튼 하나 하나 개의 도면 영역 - 파이썬에서 gtk.DrawingArea의 투명한 배경

내가 이것을 원하는 이유

내가 나의 HBox의이 배경을 가지고 있으며, 나는 그것을 두 개의 고정 용기를 배경

def draw_pixbuf(self,widget, event): 
    path = 'test.jpg' 
    pixbuf = gtk.gdk.pixbuf_new_from_file(path) 
    scaled_buf = pixbuf.scale_simple(800,480,gtk.gdk.INTERP_BILINEAR) 
    widget.window.draw_pixbuf(widget.style.bg_gc[gtk.STATE_NORMAL], scaled_buf, 0, 0, 0,0) 
self.window = gtk.Window() 
self.window.connect("delete-event", gtk.main_quit) 
self.window.set_decorated(False) 
self.window.set_position(gtk.WIN_POS_CENTER_ALWAYS) 
self.window.set_size_request(800,480) 
hbbox = gtk.HBox() 
hbbox.connect('expose-event', self.draw_pixbuf) 

있는 메인 윈도우를 가지고있다.

fix = gtk.Fixed() 
image = gtk.Image() 
image.set_from_file("close.png") 
event_box = gtk.EventBox() 
event_box.add(image) 
event_box.set_size_request(30,30) 
event_box.set_visible_window(False) 
event_box.connect("button_press_event",gtk.mainquit) 
fix.put(event_box,140,0) 

self.darea = gtk.DrawingArea() 

self.darea.set_size_request(450,300) 
self.darea.connect("expose-event", self.expose) 
fix2 = gtk.Fixed() 
fix2.put(self.darea,175,90) 
hbbox.pack_start(fix2, True, False, 10) 
hbbox.pack_end(fix, True, False, 10) 
#hbbox.pack_start(self.darea,True,False,10) 
self.window.add(hbbox) 
self.window.show_all() 

그러나 그림 영역은 자체 기본 배경 (회색)으로 해당 HBox 배경을 덮어 씁니다. modify_bg 함수로 배경을 바꿀 수 있지만, 카이로 애니메이션 텍스트를 HBox의 배경에 쓰고 싶습니다.

그래서 목표는 창의 배경 이미지를 갖고 회색 사각형 (그리기 영역의 배경)이 아닌 그 위에 케이토 애니메이션 텍스트를 그립니다.

저는 GTK에 익숙하지 않아서 어떻게해야할까요?

도와 주시면 감사하겠습니다. 고맙습니다.

+0

이 GTK + 2 또는 GTK + 3인가? – andlabs

+0

이것은 GTK + 2입니다. – Prazi

+0

duplicate of https://stackoverflow.com/questions/16843283/gtk-drawable-area-transparent-background-color – Matt

답변