Прозрачный фон gtk.DrawingArea в Python
У меня возникла проблема с установкой прозрачного фона области рисования.
Причина, по которой я хочу это то, что у меня есть главное окно, где находится фон
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)
так что мой HBox имеет этот фон, и у меня есть два фиксированных контейнера - одна кнопка и одна область рисования.
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, но я хочу, чтобы он был прозрачным для записи анимированного текста cairo на фоне HBox.
Таким образом, цель состоит в том, чтобы иметь фоновое изображение окна и рисовать анимированный текст caito на нем, а не в сером прямоугольнике (фон области рисования).
Я новичок в GTK, поэтому, возможно, я упускаю что-то важное, как это сделать.
Я надеюсь, что вы можете помочь. Спасибо.
1 ответ
Я тоже не нашел решения и поехал в Каир (Пикаиро)
Смотрите больше там: GTK рисует область прозрачного фона цвета