我有一个while
循环,我想在Tkinter窗口打开时运行它,但是当while
循环运行时Tkinter窗口甚至没有打开
这是一个问题,因为我的while
循环是一个无限循环
我基本上想创建一个程序,在通过while
循环更新按钮来选择上一个选项之后,为用户提供新的选项,但是每当我使用while
循环时,Tkinter都不会打开窗口,直到我结束循环
root = Tk()
i=0
while i==0:
def choice1():
list1[a1].implement()
list1.remove(list1[a1])
def choice2():
list2[a2].implement()
list2.remove(list2[a2])
button1 = tk.Button(root, text=list1.headline, command=choice1)
button2 = tk.Button(root, text=list2.headline, command =choice2)
root.mainloop()
此外,还会出现一个错误,因为tkinter会一直执行此循环,直到列表1或列表2中没有项目为止
我想知道的是,当while循环进行时,是否有办法运行Tkinter窗口
(a1
和a2
是随机生成的数字。)
您可能应该将
root.mainloop
放入循环中,否则它将永远不会执行。如果不执行mainloop(),窗口将不会保持打开状态另外:你需要调用函数,仅仅定义它们是不够的。 因此,除了在循环中只有
def choice1()
和def choice2()
之外,还需要在循环中有choice1()
和choice2()
,否则它不会执行这些命令还有一件事:您需要打包()按钮,因此添加行
button1.pack()
和button2.pack()
。按钮也需要在循环之前,这意味着def choice1()
和def choice2()
也需要在循环之前。(否则按钮将永远不会显示)mainloop()
是连续显示窗口的主要原因。当while loop
正在运行时,直到while loop
结束mainloop()
才会执行。因为在您的例子中,while循环永远不会结束,所以包含mainloop()
的代码一直在等待轮到它执行要解决这个问题,您必须将所有希望显示在窗口中的小部件与
mainloop()
一起放在while loop
中像这样:
相关问题 更多 >
编程相关推荐