首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Tkinter window.mainloop()

Python Tkinter window.mainloop()
EN

Stack Overflow用户
提问于 2016-03-09 01:30:11
回答 1查看 1.3K关注 0票数 1

我复制了以下代码来使用Tkinter进行动画实验:

代码语言:javascript
复制
from Tkinter import *
window = Tk()
canvas = Canvas(window, width = 400, height = 300)
canvas.pack()
x0 = 10
y0 = 50
x1 = 60
y1 = 100
i = 0
deltax = 2
deltay = 3
which = canvas.create_oval(x0,y0,x1,y1,fill="red", tag='redBall')
while True:
    canvas.move('redBall', deltax, deltay)
    canvas.after(20)
    canvas.update()
    if x1 >= 400:
        deltax = -2
    if x0 < 0:
        deltax = 2
    if y1 > 300:
        deltay = -3
    if y0 < 0:
        deltay = 3
    x0 += deltax
    x1 += deltax
    y0 += deltay
    y1 += deltay
window.mainloop()

这行得很好,但我注意到,不管有没有window.mainloop()行,它似乎都是一样的。此外,这一行似乎永远不会被调用,因为流行的while循环永远不会中断。但是,我已经看过很多次这个示例代码,所以看起来window.mainloop()确实执行了一些重要的操作。那是什么东西??

EN

回答 1

Stack Overflow用户

发布于 2017-07-08 15:08:09

在应用程序关闭之前,window.mainloop()不允许python解释器在该行之后执行代码。例如,您可以在window.mainloop()之后添加一些打印语句,您会发现在您关闭应用程序后,python会打印它们。

代码语言:javascript
复制
from Tkinter import *
root=Tk()
#your code here
root.mainloop()
#now print
print 'Mainloop over'

以这种方式,程序在主循环中循环,允许按钮和其他小部件多次执行,否则程序在第一次执行后不会执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35874044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档