Francesco Maida
2016-12-08 19:11:04 UTC
Salve, stavo cercando di capire i rudimenti di TkInter.
Venendo da anni di Visual Basic quello che non mi convince molto Ú il modo
con cui si accede al valore dei widget.
Faccio un esempio pratico con la cosa più semplice che ho trovato: le label.
Se voglio sapere il testo contenuto in una label devo scrivere:
testo = label.cget("text")
Se invece voglio modificare il testo di una label devo scrivere una cosa
diversa:
label.configure(text="<il nuovo testo della label>")
A me pareva un po assurdo avere due metodi per interrogare il valore di una
proprietà , così per protesta ho scritto una classe derivata da
tkinter.Label con una proprietà "text" che ha un get ed un set.
In questo modo posso scrivere cose del tipo:
testo = label.text
label.text = "Nuovo testo della label"
Qui se volete c'Ú l'esempio completo con la classe derivata ed
un'applicazione di prova che gira sotto Python 3:
https://gist.github.com/fmaida/ca8e43e1a75ab88e8ad6093ca42598cc
A me sembra 100 volte più semplice e intuitivo del sistema di TkInter, ma
forse mi sfugge qualcosa sulle buone abitudini della programmazione...
Ma secondo voi questa cosa che ho fatto Ú un'eresia oppure Ú una buona cosa?
Venendo da anni di Visual Basic quello che non mi convince molto Ú il modo
con cui si accede al valore dei widget.
Faccio un esempio pratico con la cosa più semplice che ho trovato: le label.
Se voglio sapere il testo contenuto in una label devo scrivere:
testo = label.cget("text")
Se invece voglio modificare il testo di una label devo scrivere una cosa
diversa:
label.configure(text="<il nuovo testo della label>")
A me pareva un po assurdo avere due metodi per interrogare il valore di una
proprietà , così per protesta ho scritto una classe derivata da
tkinter.Label con una proprietà "text" che ha un get ed un set.
In questo modo posso scrivere cose del tipo:
testo = label.text
label.text = "Nuovo testo della label"
Qui se volete c'Ú l'esempio completo con la classe derivata ed
un'applicazione di prova che gira sotto Python 3:
https://gist.github.com/fmaida/ca8e43e1a75ab88e8ad6093ca42598cc
A me sembra 100 volte più semplice e intuitivo del sistema di TkInter, ma
forse mi sfugge qualcosa sulle buone abitudini della programmazione...
Ma secondo voi questa cosa che ho fatto Ú un'eresia oppure Ú una buona cosa?