【发布时间】:2019-04-02 17:29:51
【问题描述】:
我定义了两个检查按钮标签:(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
【问题讨论】:
-
看看
trace()tkinter 变量的函数。 -
完美!这就像一个魅力!非常感谢:)
-
你为什么使用
bind而不是checkbutton的command属性? -
这也有效。我对 tkinter 很陌生,所以我对所有常见功能都不是很熟悉 :)
标签: validation checkbox tkinter bind