gpt4 book ai didi

python-3.x - Tkinter不断崩溃:在循环中更新标签(StringVar())

转载 作者:行者123 更新时间:2023-12-02 07:29:13 25 4
gpt4 key购买 nike

我在创建自己更新的标签时遇到问题。使用while循环后,Tkinter窗口崩溃。就我而言,我不会创建多个标签并将它们堆叠在彼此的顶部,这会导致程序崩溃并且不更新标签。我能做得更好吗?
先感谢您!!
带循环:

def testfunction():

while True :
f = open("exchange.txt", "r")
insert = f.read()
f.close()

if insert != var:

var.set(insert)


root = Tk()
var = StringVar()
var.set("start")

root.geometry("1920x150+-10+-35")

frame_main = Frame(root, bg="black")
frame_main.place(relwidth=1, relheight=1, relx=0, rely=0)

label = Label(root,width=10,textvariable=var, font='Helvetica 14 bold',bg="black", fg="yellow")

label.place(relwidth=0.9, relheight=0.9, relx=0.05, rely=0.1)

root.after(200, testfunction)

root.mainloop()
重要编辑:
当我通过此脚本打开它时,所有这些都会发生。
# writes down:
subprocess.Popen("python -i tkinter_samentha_tricks.py")
while True:

r = random.randint(1,6)
f = open("exchange.txt", "w+")
if r==1 or r==2:
f.write("1 or 2")
f.close
print(r)

最佳答案

使用while循环将阻止tkinter更新小部件,而使用after()代替:

def testfunction():
try:
with open("exchange.txt", "r") as f:
insert = f.read()
if insert != var.get():
var.set(insert)
except FileNotFoundError:
#print('file not found')
pass
root.after(100, testfunction)

关于python-3.x - Tkinter不断崩溃:在循环中更新标签(StringVar()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63273576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com