如何在Tkinter Spinbox上建立默认的String值?

时间:2015-08-21 16:38:59

标签: python-2.7 tkinter

当您使用from_ to选项时,我已经阅读了在Tkinter Spinbox小部件上建立默认数值的好解决方案。但是我没有看到任何一个可以帮助从元组中建立值(数字或字符串)。

我的代码如下所示,旨在从元组中设置Tkinter Spinbox小部件中的默认值:

from Tkinter import *

root = Tk()
root.geometry('200x200+50+50')
root.title('Prueba')

t = ('One', 'Two', 'Three', 'Four', 'Five')
v = t[3]

var = StringVar()
var.set(v)
sb = Spinbox(root, values=t, textvariable=var, width=10)
sb.place(x=5, y=15)

root.mainloop()

我尝试的另一种变体如下:

from Tkinter import *

root = Tk()
root.geometry('200x200+50+50')
root.title('Prueba')

var = StringVar()
var.set('Four')
sb = Spinbox(root, ('One', 'Two', 'Three', 'Four', 'Five'), textvariable=var, width=10)
sb.place(x=5, y=15)

root.mainloop()

set方法在Spinbox上工作的唯一方法(我从这里开始)是以下方式,只适用于数字,并且在Spinbox小部件中作为选项建立的范围内:

from Tkinter import *

root = Tk()
root.geometry('200x200+50+50')
root.title('Prueba')

var = StringVar()
var.set(4)
sb = Spinbox(root, from_=1, to=5, textvariable=var, width=10)
sb.place(x=5, y=15)

root.mainloop()

可以请任何人帮助我找出如何在Tuple的Tkinter Spinbox中建立默认值吗?我将非常感激!

1 个答案:

答案 0 :(得分:3)

如果您在创建窗口小部件后将行var.set(v)移动为,则会设置默认值。

var = StringVar()
sb = Spinbox(root, values=t, textvariable=var, width=10)
var.set(v)