PyGTK mudando o tema para o menu popup

3

Passei algumas horas pesquisando no google e desisti agora ...

Eu preciso alterar o plano de fundo para o menu pop-up no meu aplicativo. É definido como o tema padrão do sistema é ... e eu preciso que isso seja definido como Radiance para o tempo todo.

alguma idéia de como conseguir isso?

    
por Majster-pl 24.02.2013 / 01:27

1 resposta

4

Eu temai minhas janelas pop-up da seguinte forma:

#Use Css themes
css = Gtk.CssProvider()
css.load_from_data("""
        .popup {background-color: rgba(0,0,0,0); border: 0px rgba(255,255,255,0);  border-radius: 14px; border-width: 0;  }
    """ 
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), css,
        Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

#Get popup parent and set rgba visual so I can do transparency
pwindow=self.popup.get_parent()
screen=pwindow.get_screen()
pwindow.set_visual(screen.get_rgba_visual())

#Give popups the popup CSS class
self.popup.get_style_context().add_class('popup')

Eu também uso o cairo para desenhar a janela pop-up e dar uma boa textura. Para fazer isso, basta conectar seu sinal de 'chamar' a uma chamada de volta.

Eu observaria o tema Radiance Gtk para descobrir qual é a cor do plano de fundo e usá-la para a configuração css de cor de fundo. Você pode encontrá-lo em /usr/share/themes/Radiance/Gtk-3.0/gtk.css . Se você não precisa de transparência, pule as coisas do pwindow acima e apenas adicione o style_context ao seu pop-up.

    
por Ian B. 24.02.2013 / 14:51