我运行一个简单的时钟程序,我做的,而编辑它,我有一个问题。时钟与打印语句一起独立工作,而调色窗口也独立工作,但一起不工作。我首先通过导入tkinter库重新创建了它,然后添加了时间导入,我停止了工作。我能做什么?这是我的密码。(我正在运行pythonv3.6.5)`
import time
from tkinter import*
hours = int(input("what hour is it?"))
minutes = int(input("what minute is it?"))
seconds = int(input("what second is it?"))
window = Tk()
texthours = Text(window, width=1, height=1)
textminutes = Text(window, width=1, height=1)
textseconds = Text(window, width=1, height=1)
textseconds.pack()
textminutes.pack()
texthours.pack()
while 1==2-1:
time.sleep(1)
texthours.delete(0.0, END)
textminutes.delete(0.0, END)
textseconds.delete(0.0, END)
texthours.insert(END, hours)
textminutes.insert(END, minutes)
textseconds.insert(END, seconds)
seconds = seconds + 1
if seconds == 60:
minutes = minutes + 1
seconds = 0
if minutes == 60:
hours = hours + 1
minutes = 0
if hours == 24:
hours = 0
`
GUI程序通常使用事件驱动的执行模型。这意味着您构建了GUI,它位于一个循环中,等待事件发生,并对事件做出响应。但是在您的程序中有一个无限的
while
循环,因此GUI没有机会做任何事情。你知道吗有更好的方法可以做到这一点,但这里有一个修复版本的代码与最小的变化。你知道吗
在GUI程序中使用
time.sleep
不是一个好主意,因为这会使所有的东西都处于休眠状态,因此GUI无法响应事件。在Tkinter中,可以使用.after
方法定期调用函数。你知道吗这里有一个稍微好一点的版本,它将所有内容封装到一个类中,因此我们不需要使用
global
。这涉及到更多的类型,但它使事情更易于管理,特别是在大型复杂的gui中。你知道吗相关问题 更多 >
编程相关推荐