【问题标题】:Activate or deactivate button with CheckButton使用 CheckButton 激活或停用按钮
【发布时间】:2020-09-10 11:04:53
【问题描述】:

我创建了这个程序,但我想要按钮“按钮”(第一部分) 如果我们不选择 checkButton(第二部分),将被停用。所以我想只有在选中 CheckButton 时才激活按钮。

acceptButton = IntVar()
case = Checkbutton(fenetre, text="I accept the agreement", variable=acceptButton, cursor="hand2", bg="white",)
case.pack()
var = case.select() == 1

doNotButton = IntVar()
case2 = Checkbutton(fenetre, text="I do not accept the agreement", variable=doNotButton, bg="white", state=DISABLED) #il est impossible de cocher cette case
case2.pack()

按钮:

button = Button(fenetre, text="Suivant", command=commandSuiv, cursor="hand2", height=1, width = 15) #taille
button.pack()
button.place(x=c, y=d)
button.configure(font=f)

非常感谢 :)

【问题讨论】:

  • 致敬安东宁!请按照我们关于how to ask? 的指南中的说明将您的问题更改为英语。通过这种方式,社区中的更多人可以联系到您的问题。谢谢!

标签: python tkinter activation


【解决方案1】:

您可以先检查 CheckButton 变量,然后相应地设置 Button 的状态:

if acceptButton.get() == 0: # Your binded var returns 0 if unchecked, 1 otherwise
    button.config(state="disabled")

您也可以通过默认禁用按钮来反转该过程,它可能会更优雅:

button = Button(fenetre, text="Suivant", command=commandSuiv, cursor="hand2", height=1, width = 15, state=DISABLED) #taille

然后启用它,它将是:

if acceptButton.get() == 1:
    button.config(state="normal")

【讨论】:

  • 如果没有来自Checkbutton<IntVar ref>.trace(... 的回调,您的示例将无法运行。
  • 谢谢你.. 但不工作:/ 如果我写 var = case.select() == 1 很好。所以如果我取消选择,按钮不会改变。
猜你喜欢
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 2021-07-30
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
相关资源
最近更新 更多