GUI Button hold down - tkinter

后端 未结 5 818
天命终不由人
天命终不由人 2020-12-06 15:50

I\'m trying to do a GUI in python to control my robotic car. My question is how I do a function that determine a hold down button. I want to move the car when the button is

5条回答
  •  执念已碎
    2020-12-06 16:17

    Building on Bryan Oakley's answer of using flags to simulate a press and hold button. The problem is that you can't have any while loops in your tkinter application to say while running move car forward.

    Which is why I suggest using threads. This way you can have a while loop running in the background checking if the car should be moving foward.

    from threading import Thread
    from Tkinter import *    
    
    running = False
    root = Tk()
    
    def start_motor(event):
        global running
        print("starting motor...")
        running = True
    
    def stop_motor(event):
        global running
        running = False
        print("stopping motor...")
    
    def move_forward():
        while True: # Thread will run infinitely in the background
            if running:
                print("Car is moving forward...\n")
    
    button = Button(root, text ="forward")
    button.pack(side=LEFT)
    button.bind('',start_motor)
    button.bind('',stop_motor)
    
    # Create and start the new thread
    t = Thread(target = move_forward, args = ())
    t.start()
    
    root.mainloop()
    

提交回复
热议问题