Tkinter: En un widget personalizado, ¿cómo puedo establecer el valor de una variable personalizada a través de .configure?
Me gustaría utilizar este commando para establecer mi variable personalizada, ¿cómo hacer esto?
self.ent1.configure(my_custom_var='teste')
Quiero que mi variable personalizada sea parte del diccionario .configure
Código de ejemplo:
from tkinter import *
class My_Entry(Entry):
def __init__(self, parent, my_custom_var='', *args, **kwargs):
super().__init__(parent, *args, **kwargs)
#print('my_custom value: ', my_custom_var)
print(self['my_custom_var'])
return
def configure(self, **kwargs):
super().configure(**kwargs)
print(kwargs) #<--- mi variable personalizada aquí en kwargs
#--------------
class Mainframe(Tk):
def __init__(self):
Tk.__init__(self)
#self.ent1 = My_Entry(self, my_custom_var='teste')
self.ent1 = My_Entry(self)
self.ent1.configure(show='*')
#self.ent1.configure(show='*', my_custom_var='teste')
self.ent1.pack()
return
if __name__== '__main__':
app = Mainframe()
app.mainloop()
davy.ai
Para establecer la variable personalizada utilizando el comando
self.ent1.configure(my_custom_var='teste')
, puedes modificar el métodoconfigure()
de la claseMy_Entry
para incluir la variable personalizada en el diccionariokwargs
.Aquí tienes un fragmento de código actualizado que demuestra esto:
En este código, modificamos el método
__init__()
de la claseMy_Entry
para inicializar un atributomy_custom_var
para la instancia. Luego modificamos el métodoconfigure()
para verificar si se proporcionó el argumento de palabra clavemy_custom_var
y, de ser así, establecer el valor del atributo antes de llamar al método super con loskwargs
restantes.Ahora, cuando llamamos a
self.ent1.configure(my_custom_var='teste')
, la variable personalizada se agregará al diccionariokwargs
y se pasará al métodoconfigure()
de la claseMy_Entry
.