Forum >> Programmazione Python >> GUI >> Simulare pressione di un pulsante

Pagina: 1

Ciao a tutti, ho scritto un programma py2 con gui tkinter. Come faccio a simulare la pressione di un pulsante dopo l'avvio del programma?
Grazie,




Andrea
Scusate, mi hanno fatto notare che in questo modo non si capisce cosa ho bisogno...
In sostanza ho fatto un programma con interfaccia grafica e vorrei chiamare in automatico una sub dopo che l'interfaccia grafica è partita, quindi dopo la chiamata a mainloop().
Questo è il programma sintetizzato:
import Tkinter
top=Tkinter.Tk()
def buttonStartPressed(event):
print "button Start Pressed"
button = Tkinter.Button(text = "start")
button.pack()
button.bind("<Button-1>", buttonStartPressed)
top.mainloop()
Vorrei chiamare "buttonStartPressed" dopo il caricamento della GUI.
Grazie,
Andrea
Grazie lo stesso, ho risolto così...
import Tkinter
from threading import Timer
top=Tkinter.Tk()
def buttonStartPressed(event):
print "button Start Pressed"
if buttonStart["background"] == "green":
buttonStart["background"] = "red"
else:
buttonStart["background"] = "green"

buttonStart = Tkinter.Button(text = "start", background = "red")
buttonStart.pack()
buttonStart.bind("<Button-1>", buttonStartPressed)
def pro():
buttonStartPressed(top)
t = Timer(3, pro)
t.start()
top.mainloop()

Bravo, ho seguito il tuo messaggio ma non lavorando con le GUI non ho potuto darti nessun aiuto.

Grazie anche della condivisione del codice, ma ricorda sempre di inserire il codice Python con il tasto (quello vicino alla tavolozza dei colori), perché come sai l'indentazione gioca un ruolo fondamentale.

Ciao e complimenti per la vittoria.
Daniele
Se sistema il codice gli do un'occhiata. In tk c'è l'apposito metodo after per attivare un timer senza ricorrere ai thread.
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***
import Tkinter
from threading import Timer
top=Tkinter.Tk()
def buttonStartPressed(event): 
    print "button Start Pressed" 
    if buttonStart["background"] == "green": 
        buttonStart["background"] = "red" 
    else:
        buttonStart["background"] = "green" 
buttonStart = Tkinter.Button(text = "start", background = "red") 
buttonStart.pack() 
buttonStart.bind("<Button-1>", buttonStartPressed)
def pro(): 
    buttonStartPressed(top) 
t = Timer(3, pro) 
t.start() 
top.mainloop() 
Spero che vada bene...
In ogni caso ho provato con il metodo after ma non aveva funzionato...
import Tkinter as tk

def button_start_pressed(event=None):
    print "button Start Pressed"
    b_color = button_start["background"]
    button_start["background"] = "green" if b_color == "red" else "red"

top = tk.Tk()
button_start = tk.Button(text="start", background="red", width=20)
button_start.pack()
button_start.bind("<Button-1>", button_start_pressed)
top.after(3000, button_start_pressed)
top.mainloop()
*** 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.