这个问题之前问过一回了,问题:
你为什么要堵塞程序,按钮按下之前不执行任何代码,按钮按下再调用你要执行的函数不就得了
程序要是堵塞了,那UI也被堵塞了,按钮事件也没人响应了,你程序就假死了,无响应了
可以使用 tkinter 的 after 方法来停止程序的运行,直到按钮被点击。
具体实现方法如下:
在循环内部,在设置按钮之后使用 after 方法停止程序运行。例如,可以使用 a.after(1000) 来停止程序运行 1 秒钟。
在按钮的回调函数中,使用 after_cancel 方法取消之前设置的延迟。例如,可以使用 a.after_cancel(1000) 来取消 1 秒的延迟。
在回调函数中继续执行后面的程序。
代码如下:
import tkinter as tk
a = tk.Tk()
a.geometry("800x500")
def ggg():
global b
while True:
b = tk.Button(a, text="点我", width=10, height=2, command=click_b)
b.place(x=10, y=10)
a.after(1000) # 停止程序运行 1 秒钟
def click_b():
b.place_forget()a.after_cancel(1000) # 取消延迟
c = tk.Button(a, text="测试", width=15, height=2, command=ggg)
c.place(x=100, y=100)
# 在此继续执行后面的程序
c = tk.Button(a, text="开始", width=15, height=2, command=ggg)
c.place(x=100, y=100)
a.mainloop()
此时,程序会在循环内部一直停止运行,直到按钮被点击,然后继续执行后面的程序。
这个事情告诉你,字多,不代表正确,这些人一直在刷榜单,有些内容我怀疑他们自己都没有看,就给你回复了