python - 如何获取当前 spinbox 'from' 和 'to' 值
问题描述
如何在函数中从和到获取 spinbox 的值?
sbDays=tk.Spinbox(frame,from_=0,to=366)
sbDays.place(relx=initialX,rely=yDistance)
sbDays.configure(validate='all',validatecommand=(windows.register(validate),'%P'))
def validate(userInput):
if userInput=="":
return True
try:
val=int(float(userInput))
except ValueError:
return False
return val>=0 and val<=366
而不是return val>=0 and val<=366
. 我需要这个:
minVal=spinbox 'from' value of '0'
maxVal=spinbox 'to' value of '366'
return val>=minVal and val<=maxVal
在 C# 中,是这样的:
minVal=this.From()
maxVal=this.To()
解决方案
您可以使用该cget
方法从小部件中获取属性。
在这种情况下,您需要minVal = sbDays.cget("from")
并且maxVal = sbDays.cget("to")
编辑 - 用于多个 spinbox
要将其与多个 spinbox 一起使用,请将 to 更改validatecommand
为
validatecommand=(windows.register(validate),'%P', '%W')
并更改validate(userInput)
为validate(userInput, widget)
. 然后sbDays
在我的答案中替换windows.nametowidget(widget)
它应该可以工作。
中的
给出了小部件的名称(来自这里),然后用于获取小部件(来自这里)。%W
validatecommand
nametowidget
推荐阅读
- powershell - 用于从 API 中提取设备名称和日期的 Powershell 脚本早于指定日期
- jsonschema - 如何记录 JSON 模式
- matlab - 光照不均匀图像的二值化
- sql - 如何为系统中有 2 个帐户的人选择 1 行
- python - 如何使 python tkinter 匹配按钮到操作系统
- jquery - 从另一个属性调用对象属性中的函数
- php - 如何在多维数组的foreach循环中使用preg_replace?
- c# - 命名空间名称“设备”在命名空间中不存在
- java - 如何每n个字符剪切一个字符串?但只有在有空格时才会削减
- regex - 匹配字符串的各个部分