我遇到了Python的Tkinter模块的问题。当我尝试制作画布时,它将不会出现,直到外壳完成打印。我的代码如下所示:
from tkinter import *
import time
tk = Tk()
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
money = 500
canvas.create_text(100, 30, text="Money: " + str(money), font=('Impact', 25))
time.sleep(2)
print("Give Me A Chance To Load")
time.sleep(4)
buy = input("Will You Buy A Cow?")
if buy == "Yes":
money -= 50
if buy == "No":
money -= 999999999999999999999
这个程序应该在画布中更新现金。问题是画布不会出现,直到你回答输入并且钱仍然是500.我做错了什么?
答案 0 :(得分:1)
您正在呼叫time.sleep(...)
。你知道那是做什么的吗?它会导致您的程序 - 您的整个程序 - 进入睡眠状态。当它处于睡眠状态时,它无法进行其他操作,例如将自己绘制到屏幕上。
此外,在运行事件循环之前,无法绘制GUI(几乎使用任何工具包)。事件循环响应“绘制请求”事件,导致窗口出现在屏幕上。
Tkinter不适用于来自控制台的输入。试图这样做几乎总会令人失望。