我正在为一个大学项目写一个小游戏,我已经创建了一个chagnes屏幕的功能,这当前有效,但是当我调用show screen功能以便背景改变并调用游戏功能时,tkinter停止工作它运行前3个函数然后破坏第4个但是没有任何反应,start_game()函数中的print语句出现在命令行中,但是上面的3个语句似乎什么也没做,我的tkinter小部件冻结了。并保持在当前屏幕上,而不是更新。
def showGameSurvival():
clearScreen()
changeBackground("Survival")
createBackButton(showMain, 1003, 492)
start_game()
我不确定我是如何得到这个因为我不太了解错误本身,因为没有错误消息,我需要线程或什么? 非常感谢,汤姆。
def changeBackground(image):
filename = PhotoImage(file = filePath + image + ".png")
background_label = Label(root, image=filename)
background_label.image = filename
background_label.place(x=0, y=0, relwidth=1, relheight=1)
def clearScreen():
for widget in root.winfo_children():
widget.destroy()
关于最近评论的代码:
def showGameSurvival():
clearScreen()
changeBackground("Survival")
createBackButton(showMain, 1003, 492)
print('1')
time.sleep(5)
print('2')
答案 0 :(得分:1)
以下是您最新评论的示例。我们可以使用after()
方法来执行您尝试完成的等待时间。
请记住,如果您使用.sleep()
整个应用程序将会睡眠,而不仅仅是您正在使用的功能。
from tkinter import *
root = Tk()
def showGameSurvival():
#do stuff
print('1')
#do other stuff
root.after(5000, lambda: print('2')) # 1000 for every full second
#do more stuff
showGameSurvival()
root.mainloop()