如何追溯更改 tkinter Spinbox 实例的边界?

How does one retroactively change the bounds of a tkinter Spinbox instance?

对于我的程序,我需要根据用户更新的信息更改可接受值列表。有什么方法可以做到这一点,或者 属性 我可以覆盖吗?

我简单试了一下:

col_spinbox.values = spin_vals

其中 spin_vals 是我想要的值的元组,col_spinbox 是我试图覆盖接受值的实例。但这没有用。

根据调查,属性 值似乎存储为每个值之间有空格的字符串。所以我就这样格式化了spin_vals,还是不行。是否有旨在使用的方法,或者只是没有办法覆盖可接受的值?

更改 tkinter 小部件的属性或选项的一种常见方法是使用通用 config() 小部件方法 — 对 Spinboxvalues 选项执行此操作确实有效。

简单的例子。

import tkinter as tk


root = tk.Tk()

spinbox = tk.Spinbox(root, values=('red', 'blue', 'green'))
spinbox.pack()

def new_values(spinbox):
    spinbox.config(values=('yellow', 'cyan', 'magenta'))

chg_btn = tk.Button(root, text="Chg", command=lambda: new_values(spinbox))
chg_btn.pack()

root.mainloop()