如何对 tkinter Scale 小部件的某些值执行操作?
How to do an action for certain values of tkinter Scale widget?
我在 Python 中使用 Tkinter,但 Scale
小部件有问题。我想做的是对某些比例值执行操作。
这是 Scale
代码的一部分:
self.scale = Scale(from_=0, to=100, tickinterval=20, orient=HORIZONTAL, command= self.scale_onChange)
def scale_onChange(self, value):
if(value >= 10):
print "The value is ten"
发生了一些奇怪的事情,当我 运行 脚本时,比例值为 0,但条件似乎为真并打印 "The value is ten"。此外,当我更改比例值时,即使值大于 10,也永远不会匹配条件。
您的类型不匹配。 value
是字符串不是数值类型,在Python2.*中'0'
大于10
。感谢 Tadhg McDonald-Jensen 指出这种静默错误特定于 Python 2.*.
from Tkinter import *
def scale_onChange(value):
print(value)
print(type(value))
if(value >= 10):
print "The value is ten"
master = Tk()
scale = Scale(from_=0, to=100, tickinterval=20, orient=HORIZONTAL, command=scale_onChange)
scale.pack()
mainloop()
例如
>>> '0' >= 10
True
在 Python 3.* 你会得到一个错误:
>>> '0' >= 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()
我在 Python 中使用 Tkinter,但 Scale
小部件有问题。我想做的是对某些比例值执行操作。
这是 Scale
代码的一部分:
self.scale = Scale(from_=0, to=100, tickinterval=20, orient=HORIZONTAL, command= self.scale_onChange)
def scale_onChange(self, value):
if(value >= 10):
print "The value is ten"
发生了一些奇怪的事情,当我 运行 脚本时,比例值为 0,但条件似乎为真并打印 "The value is ten"。此外,当我更改比例值时,即使值大于 10,也永远不会匹配条件。
您的类型不匹配。 value
是字符串不是数值类型,在Python2.*中'0'
大于10
。感谢 Tadhg McDonald-Jensen 指出这种静默错误特定于 Python 2.*.
from Tkinter import *
def scale_onChange(value):
print(value)
print(type(value))
if(value >= 10):
print "The value is ten"
master = Tk()
scale = Scale(from_=0, to=100, tickinterval=20, orient=HORIZONTAL, command=scale_onChange)
scale.pack()
mainloop()
例如
>>> '0' >= 10
True
在 Python 3.* 你会得到一个错误:
>>> '0' >= 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()