Forum >> Programmazione Python >> GUI >> Visualizzare un risultato di un ciclo in una label

Pagina: 1

Buongiorno a tutti, io ho un problemino con una interfaccia Tkinter.
In pratica ho fatto una piccola interfaccia con tkinter per poter selezionare alcuni range di valori (allego programma) ; quello che mi interessa è la seconda spinbox che prende il mio valore e tramite delle funzioni esegue dei cicli.

Da uno di questi cicli esce un valore presente in una variabile "r" che io vorrei visualizzare in una label sulla mia interfaccia Tkinter; la variabile contiene un conto alla rovescia che mi farebbe capire quanti tagli mancano alla fine del lavoro.

Nel programma , all'interno della funzione "ciclo()" , io stampo il valore di "r" nella shell e il tutto funziona.... quello che non so è come passare il valore alla label in questo caso l5 (elle5) per poterlo visualizzare.

Facendo delle prove , un valore viene passato, ma solo alla fine del ciclo, infatti passa "1".

Provandolo da' l'impressione che quando il programma entra nel ciclo "ciclo()" (scusate il gioco di parole) , lo tenga fino alla fine; anche se io dall'interno del ciclo cerco di scrivere nella label dell'interfaccia.

Osservando attentamente si nota che il pulsante "Confrma Taglio" sembra restare premuto durante tutto il ciclo per poi tornare "normale" quando la Label visualizza 1.

Il programma è per Raspberry , ma se si eliminano i riferimenti alla Gpio è un normale programma Python.

Preciso , se non si capisse, che sono un novizio in Python e che il programma è pieno di parti commentare derivanti dalle prove; il programma pero' nel complesso funziona (non da errori).

Un grazie a chi potesse aiutarmi.









------
Alberto
L'interfaccia normalmente si aggiorna quando è finita l'esecuzione di ogni funzione/metodo (e quindi quando il controllo torna al mainloop della GUI).

Per forzare l'aggiornamento di un widget bisogna chiamarne il metodo update.
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***
Grazie per la risposta , ma la mia ignoranza non mi fa capire come usarlo.
Mi potresti per cortesia fare un esempio che mi permetta di comprendere quello che mi suggerisci.

Grazie




Alberto
------
Alberto
iltuowidget.configure(text='....')
iltuowidget.update()
--- Ultima modifica di Claudio_F in data 2017-11-04 17:25:07 ---
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***
iltuowidget.configure(text='....')
iltuowidget.update()
--- Ultima modifica di Claudio_F in data 2017-11-04 17:25:07 ---
Grazie Claudio_F , ma ho ancora un problema , quando inserisco le due righe da te suggeritemi mi da il seguente errore





Exception in Tkinter callback

Traceback (most recent call last):

File "/usr/lib/python3.5/tkinter/__init__.py", line 1562, in __call__

return self.func(*args)

File "/media/pi/NANO/rbe/CNC Enzo V10 R Barba 1.py", line 113, in estrai

ciclo()

File "/media/pi/NANO/rbe/CNC Enzo V10 R Barba 1.py", line 138, in ciclo

l5.configure(radice,text = dt.num_tagli - c) # =Label(radice,text = r ,width ="5",bg="yellow",font = "Times 14 normal").place(x=410, y=197) # aggiunto anche se lascio la "r" invece che la sottrazione da fare

AttributeError: 'NoneType' object has no attribute 'configure'





e non capisco cosa voglia dirmi.

Grazie a chi potra' aiutarmi.




Alberto


--- Ultima modifica di trescon in data 2017-11-04 22:44:22 ---
------
Alberto
Vuol dire che l5 identifica un oggetto None (che non ha il metodo configure) invece dell' oggetto Label che ti aspetteresti, quindi c'è un assegnamento errato a I5.


--- Ultima modifica di Claudio_F in data 2017-11-04 23:45:35 ---
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***


Pagina: 1



Esegui il login per scrivere una risposta.