Classe appelable à la manière d'input()
Bonjour,
Soit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import tkinter as tk
class A:
def __init__(self, root):
root.bind('<Key>', self.do)
self.attr = tk.StringVar()
def do(self, evt):
""" attribut sera dispo qu'après l'usage de return"""
if evt.keycode == 36:
self.attr.set("patati patata")
root = tk.Tk()
a = A(root)
def tr(*arg):
""" Quand l'attribut est disponible je le récupère/affiche """
print('ok', a.attr.get())
a.attr.trace_add('write', tr)
root.mainloop() |
J'aimerais implémenter le code de façon à l'appeler à la manière d'un input().
(En d'autres termes, j'aimerais que initialisation de la classe A ne rende la main que quand l'attribut est disponible)
Résultat souhaité:
Code:
1 2 3 4 5 6 7
| import tkinter as tk
class A:
...
root = tk.Tk()
a = A(root)
print(a) #retournant "patati patata"
root.mainloop() |
J'ai essayé en vain plusieurs approches, mais je tourne en rond...
Comment dois-je m'y prendre?
(Du moins si je ne cours pas après une chimère)