python,tkinter-仅当选择单选按钮时启用/禁用按钮
因此,这是我的代码,
root = Tk()
# 1st frame
frame_1 = LabelFrame(root)
frame_1.pack()
#var
var = IntVar()
var.set(0)
test = ['test1', 'test2', 'test3', 'test4']
# radio button
radio_1 = Radiobutton(frame_1, text = test[0], value = 1, variable = var)
radio_1.pack()
radio_2 = Radiobutton(frame_1, text = test[1], value = 2, variable = var)
radio_2.pack()
radio_3 = Radiobutton(frame_1, text = test[2], value = 3, variable = var)
radio_3.pack()
# 2nd frame
frame_2 = LabelFrame(root)
frame_2.pack()
# buttons
button_1 = Button(frame_2, text = test[0], state = DISABLED)
button_1.pack()
button_2 = Button(frame_2, text = test[1], state = DISABLED)
button_2.pack()
button_3 = Button(frame_2, text = test[2], state = DISABLED)
button_3.pack()
button_4 = Button(frame_2, text = test[3], state = DISABLED)
button_4.pack()
root.mainloop()
我要做的就是在选择无线电按钮时启用按钮。 这是我尝试的。
def changeState():
if var.get() != 0:
button_1['state'] = NORMAL
button_2['state'] = NORMAL
button_3['state'] = NORMAL
button_4['state'] = NORMAL
changeState()
我相信这仅是最初设置的,并且当我选择一个广播按钮或更改它时,它不会更新。我认为我可以在按钮内使用命令,但不明白该如何处理。
So here's my code
root = Tk()
# 1st frame
frame_1 = LabelFrame(root)
frame_1.pack()
#var
var = IntVar()
var.set(0)
test = ['test1', 'test2', 'test3', 'test4']
# radio button
radio_1 = Radiobutton(frame_1, text = test[0], value = 1, variable = var)
radio_1.pack()
radio_2 = Radiobutton(frame_1, text = test[1], value = 2, variable = var)
radio_2.pack()
radio_3 = Radiobutton(frame_1, text = test[2], value = 3, variable = var)
radio_3.pack()
# 2nd frame
frame_2 = LabelFrame(root)
frame_2.pack()
# buttons
button_1 = Button(frame_2, text = test[0], state = DISABLED)
button_1.pack()
button_2 = Button(frame_2, text = test[1], state = DISABLED)
button_2.pack()
button_3 = Button(frame_2, text = test[2], state = DISABLED)
button_3.pack()
button_4 = Button(frame_2, text = test[3], state = DISABLED)
button_4.pack()
root.mainloop()
What I'm trying to do is have the buttons enabled when the radio buttons are selected.
Here's what I tried.
def changeState():
if var.get() != 0:
button_1['state'] = NORMAL
button_2['state'] = NORMAL
button_3['state'] = NORMAL
button_4['state'] = NORMAL
changeState()
I believe this only sets it initially, and when I select a radio button or change it, it doesn't update. I think I can use command inside the buttons but don't understand how to go about it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我添加了四个函数。
尝试以下操作:
I added four function., Then in
Radiobutton
, I addedcommand=changeState
for eachRadiobuuton
.Try this: