gpt4 book ai didi

Python Tkinter Spinbox 似乎重置了变量值

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:45 26 4
gpt4 key购买 nike

我正在使用 Python 2.6.5 和 TKinter.TkVersion 8.5

这是错误行为的 MWE:

import Tkinter as tk

root = tk.Tk()

classic_var = tk.IntVar()
classic_var.set(2)
classic_spinbox = tk.Spinbox(root, from_=0, to=3,textvariable=classic_var)
classic_spinbox.pack()

values_var = tk.IntVar()
values_var.set(2)
values_spinbox = tk.Spinbox(root, values=(0, 1, 2, 3), textvariable=values_var)
values_spinbox.pack()

print classic_var.get() #expected : 2, actual : 2
print values_var.get() #expected : 2, actual : 0

root.mainloop()

即使在 Spinbox 初始化之后,我也希望 value_var 为“2”。

在这里您可以看到结果的屏幕截图: A display of a probable tkinter bug

这是一个已知的错误吗?除此之外还有其他解决方法吗?

initial_value = 2
values_var = tk.IntVar()
values_spinbox = tk.Spinbox(root, ...
values_var.set(initial_value)

最佳答案

通过我自己的测试和一些研究,最好的方法是执行您建议的解决方法,即在初始化后设置默认值。

我其实是通过google搜索从另一个用户那里找到这个答案的,哈哈:How can I establish a default String value on a Tkinter Spinbox?

这实际上是由于值的编码方式而导致的预期行为。值的工作方式是它在某种意义上覆盖其他参数,因此它使用您在值中声明的第一个值作为初始值,而不是文本变量。我不相信有任何方法可以解决这个问题。

引用:https://www.tcl.tk/man/tcl8.4/TkCmd/spinbox.htm#M22然后点击值,它会解释它。

关于Python Tkinter Spinbox 似乎重置了变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225071/

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