gpt4 book ai didi

python - Tkinter - 设置字符串变量并在循环时获取条目值

转载 作者:行者123 更新时间:2023-12-01 05:51:21 27 4
gpt4 key购买 nike

我的目标是能够将字符串变量传递给两个不同的条目以进行用户验证并返回用户修改的值。如果执行一次,该代码可以正常工作;但是,当循环时,它仅在循环的第一次迭代期间正确执行。在后续迭代期间,条目的字符串变量为空。

我尝试过 update_idletasks() 和时间 sleep ,但没有运气。我在 Windows XP 上运行 Python 2.4。

# -*- coding: cp1252 -*-
import Tkinter

def retrieve_text():
app_win.quit()

for item in range(3):

numero_dossier = item+1
version_dossier = item+2

app_win = Tkinter.Tk()

l = Tkinter.Label(app_win, text="Veuillez valider les informations suivantes et les corriger au besoin :")
l.grid(row=0, column=0, columnspan=2)
l.pack()

v1 = Tkinter.StringVar()
v1.set(numero_dossier)
l1 = Tkinter.Label(app_win, text="Numéro de dossier:", anchor='w', justify='left')
e1 = Tkinter.Entry(app_win, textvariable=v1)

l1.pack()
e1.pack()

v2 = Tkinter.StringVar()
v2.set(version_dossier)
l2 = Tkinter.Label(app_win, text="Version du dossier:", anchor='w', justify='left')
e2 = Tkinter.Entry(app_win, textvariable=v2)

l2.pack()
e2.pack()

app_button = Tkinter.Button(app_win,text="OK",command=retrieve_text)
app_button.pack()

app_win.mainloop()

app_win.withdraw()

numero_dossier = e1.get().strip()
version_dossier = e2.get().strip()

print numero_dossier, version_dossier

最佳答案

这从根本上被打破了:

for item in range(3):
...
app_win = Tkinter.Tk()

Tkinter 根本就不是为这种工作方式而设计的。您的程序应该只创建 Tk 类的单个实例,并且您应该只调用 mainloop 一次。

关于python - Tkinter - 设置字符串变量并在循环时获取条目值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204414/

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