【问题标题】:How set the initial value for a tkinter Scale widget in Python?如何在 Python 中设置 tkinter Scale 小部件的初始值?
【发布时间】:2015-06-17 16:38:54
【问题描述】:

我想将Scale 小部件的值初始化为2。我怎样才能做到这一点?因为我使用了网格,.set 无法正常工作。

这是我的代码:

Scale(self, command=self.onMove, movesvariable=self.var, from_=1, to=10,orient=HORIZONTAL,length=500,tickinterval=0.5, resolution=0.1, cursor = 'hand2 ').grid(columnspan ='200',rowspan = '4',sticky= W)

【问题讨论】:

  • “因为我使用了网格,.set 无法正确使用 [sic]”。正确的解决方案是将呼叫移至单独的行上的.grid。一条线完成所有操作根本没有任何优势。
  • 我已经解决了这个问题,但是当我放大小部件时,它不会修复它的大小,您有什么好的解决方案吗?

标签: python tkinter tkinter-scale


【解决方案1】:

将其改为两行:

yourScale = Scale(self, command=self.onMove, movesvariable=self.var, from_=1, to=10,orient=HORIZONTAL,length=500,tickinterval=0.5, resolution=0.1, cursor = 'hand2 ')
yourScale.grid(columnspan ='200',rowspan = '4',sticky= W)

.grid() 返回None;像你所做的那样在 Scale 之后调用它不会像你期望的那样返回一个 Scale 对象,它会返回一个 Nonetype。实现这个小改动应该允许您在存储 Scale 对象的任何变量上使用.set。(在此示例中为yourScale

顺便说一句:您可能希望删除问题中的 set 标记:set 引用数据结构,而不是 Tkinter 中的 set 函数。

【讨论】:

  • 我已经解决了这个问题,但是当我放大小部件时,它不会修复它的大小,您有什么好的解决方案吗?
  • 您的意思是比例尺没有变大以适应放大的小部件,或者它确实变大了而您不希望它变大?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多