【问题标题】:How to make a Tkinter button do a while loop until another button is pressed [duplicate]如何使 Tkinter 按钮执行 while 循环,直到按下另一个按钮 [重复]
【发布时间】:2021-06-27 01:58:59
【问题描述】:

所以我基本上想要做的是,当我点击按钮一时,我希望程序每秒打印一次 go,直到点击按钮二,但发生的情况是,当我运行代码时,它只是打印 go,即使我还没有点击按钮一。我正在尝试这样做,因为我想用我的 esp32 做一个物联网项目,在那里我每 15 秒获得一次互联网速度并将数据发送到我的 esp 32,程序将执行此操作,直到我/用户给出一个输入/按钮单击以使其停止,所以如果你们知道更好的方法我可以做到这一点,我们将不胜感激

import time
import tkinter as tk
user_input=""
def onclick1():
    while user_input!="stop":
        print("go")
        time.sleep(1)
def onclick2():
    user_input="stop"



root=tk.Tk()
root.title("BUTTON_TEST")

btn1=tk.Button(root,text="Button 1",command=onclick2())
btn2=tk.Button(root,text="Button 2",command=onclick1())

btn1.pack()
btn2.pack()
root.mainloop()

【问题讨论】:

    标签: python loops tkinter


    【解决方案1】:

    onclick1() 函数将阻塞窗口的主循环。您需要创建一个线程并在该线程中完成工作。 或者您可以在模块 concurrent.futures 中使用执行器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 2020-11-09
      • 2014-06-14
      • 1970-01-01
      • 2020-06-01
      • 2014-09-12
      • 1970-01-01
      相关资源
      最近更新 更多