【问题标题】:my tkinter window doesn't open up when I add the sleep() part当我添加 sleep() 部分时,我的 tkinter 窗口没有打开
【发布时间】:2016-06-16 13:50:10
【问题描述】:

我试图让一个球从屏幕的一侧转身,然后回来。每当我尝试运行这个程序时,tkinter 窗口都不会出现,但是当我摆脱 sleep(0.5) 部分时,它会在球已经离开屏幕时出现。谁能告诉我我做错了什么?

from tkinter import *
from time import sleep

window = Tk() 
cWidth = 800
cHeight = 500
c = Canvas(window, width = cWidth, height = cHeight, bg='black')
c.pack()
x = 400
y = 250
ball = c.create_polygon(x, y, x, y+25, x+25, y+25, x+25,y, fill='yellow')


Ball_move = 10

for i in range(200):
    c.move(ball, Ball_move, 0)
    window.update
    x += Ball_move
    if x == cWidth:
        Ball_move = -Ball_move
    sleep(0.5)

window.mainloop()

【问题讨论】:

标签: python tkinter sleep


【解决方案1】:

在 Windows 中,Tkinter 框架仅在您调用 mainloop() 后才会显示。在您的情况下, for 循环可能会阻止它。将 for 循环保留在一个函数中,然后使用线程调用该函数,这样它就不会阻塞主循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多