gpt4 book ai didi

python - Tkinter:在不触发回调的情况下设置 'scale' 值?

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:55 25 4
gpt4 key购买 nike

我有一个 Tkinter GUI,其中有一个 Scale 对象。当用户更改比例位置时,我分配了一个回调(通过 command 构造函数参数)来执行操作。但是,也有一种情况是刻度表示的值被外部修改了,所以我使用Scale.set()来设置刻度位置。在这种情况下,我想设置比例,但触发回调,因为程序的其余部分已经知道更改。但是,我注意到回调确实是由 set() 触发的。

是否可以执行以下操作之一:

  1. 在不触发回调的情况下设置比例值。

  2. 区分回调是由用户交互触发还是由调用 Scale.set() 触发。

谢谢。

最佳答案

我遇到了同样的问题,既没有禁止回调也没有设置全局变量来检查回调状态对我有用,出于某种不明原因,在我的代码运行完成后回调一直被调用。

尽管如此,对我有用的解决方案很简单:我在小部件中使用了一个变量,并使用变量的 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

关于python - Tkinter:在不触发回调的情况下设置 'scale' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com