Python 如何用Tkinter循环替换while循环

Python 如何用Tkinter循环替换while循环,python,while-loop,tkinter,Python,While Loop,Tkinter,我想知道是否有人能帮我将Tkinker正确地添加到我现有的脚本中?。Tkinker代码在当前脚本之外工作得很好,就像没有Tkinter代码的脚本一样,但是我很难将它合并在一起。我已经做了很多搜索,但我似乎无法找到我想要的答案。以下是指向我的脚本的链接: 第50行“GUI”窗口是我试图添加的代码 谢谢您需要准确地调用root.mainloop()一次。您需要将while True循环转换为一个函数,并且在函数结束时,您需要在之后再次调用自己。这个函数还应该更新GUI,不过如果您愿意,可以将其放在

我想知道是否有人能帮我将Tkinker正确地添加到我现有的脚本中?。Tkinker代码在当前脚本之外工作得很好,就像没有Tkinter代码的脚本一样,但是我很难将它合并在一起。我已经做了很多搜索,但我似乎无法找到我想要的答案。以下是指向我的脚本的链接:

第50行“GUI”窗口是我试图添加的代码


谢谢

您需要准确地调用
root.mainloop()
一次。您需要将
while True
循环转换为一个函数,并且在函数结束时,您需要在
之后再次调用自己。这个函数还应该更新GUI,不过如果您愿意,可以将其放在单独的函数中


您不想多次调用
gui\u display
函数。现在,您每秒钟创建六个新的小部件。相反,您希望创建它们一次,然后每秒钟更新一次。

主要问题是您似乎有两个无休止的循环需要同时运行。我将采取的方法是将您现在在主无限
中的非GUI代码循环成一个独立的函数,然后由tkinter
mainloop()
定期调用,它必须是GUI程序中的主要循环。您可以通过首先为此新函数发出一个对
root.after()
方法的调用来安排这种情况,然后在函数本身的末尾再次调用它。您的
gui\u display()
方法的一个问题是所有类似于
L1=Label(root,text=“Temperature=)的行.grid(row=0,column=0,sticky=W)
正在将值
None
分配给变量,因为这是小部件
grid()
方法返回的结果。相反,你应该单独打电话;一个用于创建小部件,另一个用于在后续行中使用分配给前一个变量的对象值调用其
grid()
方法。感谢您的评论,想知道是否有人可以给我举个例子,或者告诉我可以找到的地方?谢谢,我不明白你为什么需要一个例子,只要按照@Bryan和我给你的建议去做就行了。Rob:多次调用
gui\u updates()
实际上是非常不可取的,因为它每次都会创建新的
Label
对象(根据我之前的评论,这是不必要的)。摆脱与之相关的
root.after()
调用,在进入
root.mainloop()
之前直接调用它。