» »

Gtk3 + Python + transparentno glavno okno

Gtk3 + Python + transparentno glavno okno

BigWhale ::

Je kdo ze kaj delal z Gtk3?

Tole je koda, ki bi morala izrisati rahlo transparentno okno in na njem netransparenten gumb. Pa okno ni transparentno. xdpyinfo/xwininfo javita, da je okno v 32 bitem color space-u in da je vse ok.

Ce nastavim .set_opcity(.5) potem okno postane transparentno, a zal tudi vsebina, tega pa nocem. :)

#!/usr/bin/env python

from gi.repository import Gtk, Gdk

class MyWin (Gtk.Window):
    def __init__(self):
        super(MyWin, self).__init__()
        self.set_position(Gtk.WindowPosition.CENTER)
        self.set_border_width(30)
        self.screen = self.get_screen()
        self.visual = self.screen.get_rgba_visual()
        if self.visual != None and self.screen.is_composited():
            print "yay"
            self.set_visual(self.visual)

        box = Gtk.Box()
        btn1 = Gtk.Button(label="foo")
        box.add(btn1)
        self.add(box)

        self.set_app_paintable(True)
        self.connect("draw", self.area_draw)
        self.show_all()

    def area_draw(self, widget, cr):
        cr.set_source_rgba(0, 0, 0, .3)
        cr.paint()

#    def screen_changed(self, widget, cr):
#        self.screen = widget.get_screen()
#        self.visual = self.screen.get_rgba_visual()
#        if self.visual != None and self.screen.is_composited():
#            self.set_visual(self.visual)

MyWin()
Gtk.main()

BigWhale ::

Popravljena callback funkcija, ki dejansko deluje:

    def area_draw(self, widget, cr):
        cr.set_source_rgba(.2, .2, .2, 0.9)
        cr.set_operator(cairo.OPERATOR_SOURCE)
        cr.paint()
        cr.set_operator(cairo.OPERATOR_OVER)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10318169 (8917) black ice
»

Predstavitev dvojiškega drevesa z seznamom

Oddelek: Programiranje
141959 (1559) ktka
»

[Python]Naloga z razredi in dedovanjem

Oddelek: Programiranje
101157 (909) ktka
»

Ruby + Glade ... težave

Oddelek: Programiranje
91621 (1414) sebatronic
»

python -slovar

Oddelek: Programiranje
223147 (2126) Valex86

Več podobnih tem