按下Tkinter中的按钮时,如何使用一个功能执行多个任务



所以,我的计划是创建一个在屏幕上显示序列的游戏,你必须按照序列点击正确的按钮。我将在这个项目中使用Tkinter。这里有一些解释:当点击任何按钮时,都会执行一个函数,其中包含一个参数,该参数会告诉你点击了哪个按钮,然后该函数会检查它是否是正确的按钮。

问题:如果用户单击了右键,此函数将调用第二个函数来显示序列的下一个按钮。问题是显示这个应该需要一些时间,同时tkinter按钮保持"点击"状态。我不希望这种情况发生,也是因为在这种情况发生时,你不能执行其他任务,比如离开游戏或重新开始游戏。

这里我有一个简单的例子来告诉你这个问题,如果你还看不到的话:

import tkinter as tk
from time import sleep
def func():
print('hi')
func2()
def func2():
print('hi2')
for num in range(3, 11):
sleep(1)
print('hi' + str(num)) 
wn = tk.Tk()
b1 = tk.Button(wn, command=func)
b1.pack()
wn.mainloop()

在这种情况下,按下按钮时,代码应打印"hi"+从1到10的数字。然而,我之前说过的事情发生了。

我如何才能使上面的例子正确工作,以及我的项目?

您可以使用线程,也可以定义运行func1和func2的func3。

最新更新