我定义了两个checkbutton标签:(var是我使用的类,以便我也可以访问外部的变量)
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
答案 0 :(得分:0)
正如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)
它确实满足我的需求!