我有一个 Tkinter GUI,其中有一个Scale
目的。我分配了一个回调(由command
构造函数参数)以在用户更改刻度位置时执行操作。然而,也存在一种情况,刻度表示的值被外部修改,所以我使用设置刻度位置Scale.set()
。在这种情况下,我想设置比例,但是not触发回调,因为程序的其余部分已经知道更改。但是,我注意到回调确实是由set()
.
是否可以执行以下操作之一:
设置比例值而不触发回调。
区分回调是由用户交互触发还是由Scale.set()
被召唤。
Thanks.
我遇到了同样的问题,既不抑制回调也不设置全局变量来检查回调状态对我有用,由于某种晦涩的原因,在我的代码完成运行后,回调不断被调用。
尽管如此,对我有用的解决方案很简单:我在小部件中使用了一个变量并使用set
变量的方法而不是小部件的方法。
value = DoubleVar()
scale = Scale(master, variable=value, command=callback)
scale.pack()
scale.set(0) #<- this triggered the callback, no matter what I tried to stop it
value.set(0) #<- this seems to work like the previous line but without any callback
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)