‘CssProvider’ object has no attribute ‘load_from_patch’

Home Fóruns Fórum Interface Gráfica para Apps Python com GTK e Glade ‘CssProvider’ object has no attribute ‘load_from_patch’

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #27555

    C:\msys64\mingw64\bin\python3.exe C:/msys64/home/claudio/Projeto3/Calculadora_PyGTK.py
    Traceback (most recent call last):
    File “C:/msys64/home/claudio/Projeto3/Calculadora_PyGTK.py”, line 98, in <module>
    builder.connect_signals(Handler())
    File “C:/msys64/home/claudio/Projeto3/Calculadora_PyGTK.py”, line 14, in __init__
    self.usar_estilo()
    File “C:/msys64/home/claudio/Projeto3/Calculadora_PyGTK.py”, line 24, in usar_estilo
    css_provider.load_from_patch(‘static/estilo_calculadora.css’)
    AttributeError: ‘CssProvider’ object has no attribute ‘load_from_patch’

    Process finished with exit code 1

    #27564

    Anexo aqui o Fonte do pgm

    import gi
    from Calculadora import Calculadora

    gi.require_version(‘Gtk’, ‘3.0’)
    from gi.repository import Gtk, Gdk

    # estanciar o construtor de objetos GKT e carregar arquivo q contem os objetos #
    builder = Gtk.Builder()
    builder.add_from_file(“gui_calculadora.glade”)

    class Handler(object):
    def __init__(self):
    self.usar_estilo()
    self.display = builder.get_object(‘display’)
    self.display.set_text(“0”)
    self.primeiro_numero = None
    self.operacao = None
    self.calc = Calculadora()
    self.limpar_display = None

    def usar_estilo(self):
    css_provider = Gtk.CssProvider()
    css_provider.load_from_patch(‘static/estilo_calculadora.css’)
    screen = Gdk.Screen()
    style_context = Gtk.stylecontext()
    style_context.add_provider_for_screen(screen.get_defaut(),
    css_provider,
    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

    def on_main_window_destroy(self, window):
    Gtk.main_quit()

    def on_botao_clicked(self, botao):
    if self.limpar_display:
    self.display.set_text(“0”)
    self.limpar_display = False

    if self.display.get_text() == “0”:
    self.display.set_text(str(botao.get_label()))
    else:
    self.display.set_text(str(self.display.get_text() + botao.get_label()))

    def on_botao_ponto_clicked(self, botao):
    self.display.set_text(str(self.display.get_text() + botao.get_label()))

    def on_botao_reset_clicked(self, botao):
    self.display.set_text(str(0))

    def on_botao_soma_clicked(self, botao):
    self.operacao = “soma”
    self.primeiro_numero = self.ler_display()
    self.limpar_display = True

    def on_botao_subtracao_clicked(self, botao):
    self.operacao = “subtracao”
    self.primeiro_numero = self.ler_display()
    self.limpar_display = True

    def on_botao_multiplicacao_clicked(self, botao):
    self.operacao = “multiplicacao”
    self.primeiro_numero = self.ler_display()
    self.limpar_display = True

    def on_botao_divisao_clicked(self, botao):
    self.operacao = “divisao”
    self.primeiro_numero = self.ler_display()
    self.limpar_display = True

    def on_botao_raiz_quadrada_clicked(self, botao):
    primeiro_numero = self.ler_display()
    resultado = self.calc.funcoes[“raiz_quadrada”](primeiro_numero)
    self.display.set_text(str(resultado))

    def on_botao_porcentagem_clicked(self, botao):
    self.operacao = “porcentagem”
    self.primeiro_numero = self.ler_display()
    self.limpar_display = True

    def ler_display(self):
    string = self.display.get_text()

    try:
    numero = int(string)
    except:
    numero = float(string)

    return numero

    def on_botao_igual_clicked(self, botao):
    segundo_numero = self.ler_display()

    resultado = self.calc.funcoes[self.operacao](self.primeiro_numero, segundo_numero)
    self.display.set_text(str(resultado))
    self.limpar_display = True

    builder.connect_signals(Handler())
    window = builder.get_object(‘main_window’)
    window.show_all()
    Gtk.main()

    #27565
    Edson Pacholok
    Moderador

    Olá,

    percebi um erro de digitação em:

    css_provider.load_from_patch(‘static/estilo_calculadora.css’)

    O correto é:

    css_provider.load_from_path(‘static/estilo_calculadora.css’)

    Confira se vai dar certo 🙂

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Você deve fazer login para responder a este tópico.