Tkinter checkbutton 绑定不采用更新的值

Tkinter checkbutton bind does not take the updated value

我定义了两个复选按钮标签:(var 是我使用的 class 以便我也可以访问外部变量)

lby = ttk.Checkbutton(var.frame,text="y-direction",variable=var.vel_y)
lbz = ttk.Checkbutton(var.frame,text="z-direction",variable=var.vel_z)
lby.grid(column=1,row=3,sticky=W)
lbz.grid(column=1,row=4,sticky=W)

现在,我绑定用户单击任何按钮以调用函数 options_yz()。

 def options_yz(key):
    print("y"+str(var.vel_y.get()))
    print("z"+str(var.vel_z.get()))
 lby.bind('<Button-1>', options_yz)
 lbz.bind('<Button-1>', options_yz)

但在我看来,单击按钮会在更改变量值之前调用该函数。有没有办法在改变变量后调用函数?

例如: var.vel_y 和 var.vel_z 的默认值为 0。我单击 y 方向的复选按钮。我的输出是:

y0
z0

我的实际输出应该是:

y1
z0

接下来我单击 z 方向的复选按钮。我的输出是:

y1
z0

我的实际输出应该是:

y1
z1

按照 acw1668 的建议,我没有将函数绑定到用户单击按钮,而是将其绑定到用户对变量的更改。所以我的代码改为:

def options_yz(*args):
    print("y"+str(var.vel_y.get()))
    print("z"+str(var.vel_z.get()))
var.vel_y.trace("w", options_yz)
var.vel_z.trace("w", options_yz)

它完全符合我的需要!