Sertergi
Profilo di
Nome | Sertergi |
---|---|
Indirizzo email | n/a |
Messaggi | 3 |
-
- 2017-05-29 20:00:45
- Re: Tkinter e ciclo while
- Forum >> Programmazione Python >> GUI
- Nel mio programma sono riuscito a risolvere sostituendo il ciclo while di Python, con il ciclo after di tk, e inserendo una variabile globale.
L'esempio seguente è scritto con Python 3.4.2 , mi scuso in anticipo per la mia scrittura basilare con l'utilizzo di variabili globali, ma sono agli inizi ( sto cercando di capire ancora bene la programmazioni a classi )
Nell'esempio nel ciclo start stampa data e ora come output nella shell di Python
# importa tutti i moduli Tkinter import tkinter from tkinter import * # importa i moduli data e ora import datetime # definisci variabile globale startvar global startvar startvar = True # definisci start def start(): global jobstart if startvar == True: startbutton = Button (text="START", bg="dark green", command=start, state="disabled").grid(row=1, column=0) stopbutton = Button (text="STOP/EXIT", bg="red2", command=stop).grid(row=2, column=0) dataeora = ("%s" % datetime.datetime.now().isoformat()) print ("Data e ora : ", dataeora) # inserire eventuali altre funzioni nel ciclo di start qui finestra.update_idletasks() jobstart = finestra.after(1000, start) # definisci stop def stop(): global jobstart finestra.after_cancel(jobstart) startbutton = Button (text="START", bg="dark green", command=start, state="normal").grid(row=1, column=0) print ("hai premuto stop") uscita = messagebox.askyesno(title="USCITA", message="Vuoi davvero Uscire?") if uscita : finestra.destroy() # crea la finestra principale finestra = Tk () finestra.geometry ('400x240+0+0') finestra.title ('Exit loop Tk') startbutton = Button (text="START", bg="dark green", command=start).grid(row=1, column=0) # mainloop finestra finestra.update_idletasks() finestra.mainloop()
--- Ultima modifica di Sertergi in data 2017-05-29 20:05:52 ---
-
- 2017-05-18 11:13:15
- Re: Tkinter e ciclo while
- Forum >> Programmazione Python >> GUI
- Secondo voi si potrebbe risolvere questo specifico problema utilizzando il metodo AFTER in sostituzione al ciclo WHILE ?
--- Ultima modifica di Sertergi in data 2017-05-18 11:13:32 ---
-
- 2017-05-17 19:19:55
- Re: Tkinter e ciclo while
- Forum >> Programmazione Python >> GUI
- Salve a tutti,
sono alle primissime armi anche io con l'apprendimento di Python(3), e non mi è chiaro il funzionamento con Tkinter ed i cicli while , mi sembra di capire che strutturando così il programma rimane nel ciclo di while e la finestra principale non si aggiorna.
Ho il tuo stesso scoglio e non capisco come uscire da un ciclo while in seguito alla pressione di un bottone della finestra principale.
Ho provato ad inserire nel ciclo anche un refresh della schermata con canvas.update_idletasks() , come la creazione del pulsante per interrompere all'interno del ciclo di while, ma senza risultati.
Scusate la mia ignoranza in materia me se avete una spiegazione mi farebbe comodo.
Grazie