Home › Fóruns › Fórum Interface Gráfica para Apps Python com GTK e Glade › ‘CssProvider’ object has no attribute ‘load_from_patch’
- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 4 anos atrás por
Edson Pacholok.
- AutorPosts
- 31 de janeiro de 2021 às 13:57 #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
1 de fevereiro de 2021 às 18:37 #27564Anexo aqui o Fonte do pgm
import gi
from Calculadora import Calculadoragi.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 = Nonedef 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 = Falseif 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 = Truedef on_botao_subtracao_clicked(self, botao):
self.operacao = “subtracao”
self.primeiro_numero = self.ler_display()
self.limpar_display = Truedef on_botao_multiplicacao_clicked(self, botao):
self.operacao = “multiplicacao”
self.primeiro_numero = self.ler_display()
self.limpar_display = Truedef on_botao_divisao_clicked(self, botao):
self.operacao = “divisao”
self.primeiro_numero = self.ler_display()
self.limpar_display = Truedef 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 = Truedef 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 = Truebuilder.connect_signals(Handler())
window = builder.get_object(‘main_window’)
window.show_all()
Gtk.main()1 de fevereiro de 2021 às 19:57 #27565Olá,
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 🙂
- AutorPosts
- Você deve fazer login para responder a este tópico.