【问题标题】:How to change Radiobutton state in python?如何在python中更改单选按钮状态?
【发布时间】:2021-08-09 11:50:33
【问题描述】:

如何在 python 中更改单选按钮状态?我参考了一些例子。

我依赖单选按钮:

  1. 选项 A 选项 B
  2. 选项 1 选项 2
  3. 选项 i 选项 ii

默认情况下,我只想选择选项 A,而其他选项被禁用。当用户选择选项 B 时,选项 A 应该关闭,然后选项 1、选项 2、选项 i 和选项 ii 激活,这意味着用户现在可以选择这些。

如何更改选项的状态并创建依赖关系?

import tkinter as tk
master = tk.Tk()
master.title("Tool")
master.geometry("700x300")
var = tk.StringVar()
var.set(' ') 
def sel():
   selection =  (var.get())
   print(selection)
   if(selection==1):
       R4.config(state=["disabled"])
tk.Label(master, text="SELECT --").grid(row=0, column=0, padx=10, pady=0,sticky='w')
R1 = tk.Radiobutton(master, text="Option A", variable=var, value=1, command=sel).grid(row=2,column=1)
R2 = tk.Radiobutton(master, text="Option B", variable=var, value=2, command=sel).grid(row=2,column=2)
R3 = tk.Radiobutton(master, text="Option 1", variable=var, value=3, command=sel).grid(row=3,column=1)
R4 = tk.Radiobutton(master, text="Option 2", variable=var, value=4, command=sel).grid(row=3,column=2)
R5 = tk.Radiobutton(master, text="Option i", variable=var, value=5, command=sel).grid(row=4,column=1)
R6 = tk.Radiobutton(master, text="Option ii", variable=var, value=6, command=sel).grid(row=4,column=2)
master.mainloop()

【问题讨论】:

  • "只有选项A应该被选中,其他被禁用" 如果其他都被禁用,如何选择选项B?还将这些R1 = tk.Radiobutton(...).grid(...) 分成两行R1 = tk.Radiobutton(...)R1.grid(...)
  • ok,,done.. 但是当我使用这个 var.get 它不工作 def sel(): selection = (var.get()) print(selection) if(var.get ()==1): R3.config(state=["disabled"]) R4.config(state=["disabled"]) R5.config(state=["disabled"]) R6.config(state=[ “禁用”]) tk.Label(master, text="SELECT --").grid(row=0, column=0, padx=10, pady=0,sticky='w') R1 = tk.Radiobutton( master, text="Option A", variable=var, value=1, command=sel) R1.grid(row=2,column=1) R2 = tk.Radiobutton(master, text="Option B", variable= var, value=2, command=sel) R2.grid(row=2,column=2)
  • 这是因为var.get()返回的值是一个字符串,因为varStringVar()。将var 更改为IntVar() 或使用selection = int(var.get())state=["disabled"] 也应该是 state="disabled"

标签: python tkinter radio-button


【解决方案1】:

根据我对您的问题的理解,我有这个:

import tkinter as tk
master = tk.Tk()
master.title("Tool")
master.geometry("700x300")
var = tk.StringVar()
var.set('5') 
def sel():
   selection =  (var.get())
   print(selection)
   if(selection=='1'):
       R6.config(state="disabled")
       R3.config(state="disabled")
       R5.config(state="disabled")
       R4.config(state="disabled")
   elif selection=='2':
       R1.config(state="disabled")
       R6.config(state="normal")
       R3.config(state="normal")
       R5.config(state="normal")
       R4.config(state="normal")
   else:
       R1.config(state="normal")
       R2.config(state="normal")
       R6.config(state="normal")
       R3.config(state="normal")
       R5.config(state="normal")
       R4.config(state="normal")

tk.Label(master, text="SELECT --").grid(row=0, column=0, padx=10, pady=0,sticky='w')
R1 = tk.Radiobutton(master, text="Option A", variable=var, value="1", command=sel)
R1.grid(row=2,column=1)
R2 = tk.Radiobutton(master, text="Option B", variable=var, value="2", command=sel)
R2.grid(row=2,column=2)
R3 = tk.Radiobutton(master, text="Option 1", variable=var, value='3', command=sel)
R3.grid(row=3,column=1)
R4 = tk.Radiobutton(master, text="Option 2", variable=var, value='4', command=sel)
R4.grid(row=3,column=2)
R5 = tk.Radiobutton(master, text="Option i", variable=var, value='5', command=sel)
R5.grid(row=4,column=1)
R6 = tk.Radiobutton(master, text="Option ii", variable=var, value='6', command=sel)
R6.grid(row=4,column=2)
master.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 2018-01-13
    • 2016-08-01
    • 2013-12-06
    • 2020-05-29
    相关资源
    最近更新 更多