Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按下另一个单选按钮后禁用和取消选择单选按钮_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 按下另一个单选按钮后禁用和取消选择单选按钮

Python 按下另一个单选按钮后禁用和取消选择单选按钮,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在使用Python编写一个简单的数字系统转换器,并将Tkinter用于GUI。我试图让它像这样工作: 用户从:“侧”按“十进制”收音机打开,“十进制”收音机打开”到:“侧被禁用 用户按下“八进制”键“到:”侧,没有任何变化 用户按下“八进制”从:“侧”,八进制“收音机打开”到:“侧被禁用和取消选择 但到目前为止,它是这样工作的: 用户从:“侧”按“十进制”收音机打开,“十进制”收音机打开”到:“侧被禁用 用户按下“八进制”键“到:”侧,没有任何变化 用户按下“八进制”从:“侧”,八进制“收音

我正在使用Python编写一个简单的数字系统转换器,并将Tkinter用于GUI。我试图让它像这样工作:

  • 用户从:“侧”按“十进制”收音机打开,“十进制”收音机打开”到:“侧被禁用
  • 用户按下“八进制”键“到:”侧,没有任何变化
  • 用户按下“八进制”从:“侧”,八进制“收音机打开”到:“侧被禁用和取消选择
  • 但到目前为止,它是这样工作的:

  • 用户从:“侧”按“十进制”收音机打开,“十进制”收音机打开”到:“侧被禁用
  • 用户按下“八进制”键“到:”侧,没有任何变化
  • 用户按下“八进制”从:“侧”,八进制“收音机打开”到:“侧被禁用,但保持选中状态
  • 要使其按预期工作,我应该做哪些更改

    我的代码:

    从tkinter导入*
    root=Tk()
    fromsel=IntVar()
    tosel=IntVar()
    def禁用按钮():
    fr=fromsel.get()
    tbin_radio.config(如果fr==2,则状态为禁用,否则为正常)
    toct_radio.config(如果fr=8,则状态为禁用,否则为正常)
    tdec_radio.config(如果fr==10,则状态为禁用,否则为正常)
    thex_radio.config(如果fr==16,则状态为禁用,否则为正常)
    fromlab=Label(root,text=“From:”,justify=LEFT,anchor=W)
    fbin\u单选=单选按钮(根,text=“Binary”,变量=fromsel,值=2,命令=disable\u按钮)
    foct_单选=单选按钮(root,text=“Octal”,变量=fromsel,值=8,命令=禁用_按钮)
    fdec_单选=单选按钮(root,text=“Decimal”,变量=fromsel,值=10,命令=禁用_按钮)
    fhex_单选=单选按钮(根,text=“十六进制”,变量=fromsel,值=16,命令=禁用_按钮)
    fromentry=条目(根)
    tolabel=标签(根,text=“To:”)
    tbin_单选=单选按钮(根,text=“Binary”,变量=tosel,值=1)
    toct_单选=单选按钮(根,text=“八进制”,变量=tosel,值=2)
    tdec_单选=单选按钮(根,text=“Decimal”,变量=tosel,值=3)
    X_单选按钮=Radiobutton(root,text=“十六进制”,变量=tosel,值=4)
    toentry=条目(根)
    fromlabel.grid(行=0)
    fbin_无线电网格(行=1,列=0)
    foct_radio.grid(行=1,列=1)
    fdec_无线电网格(行=1,列=2)
    fhex_无线电网格(行=1,列=3)
    fromentry.grid(行=2,列span=4)
    tolabel.grid(行=3)
    tbin_无线电网格(行=4,列=0)
    toct_radio.grid(行=4,列=1)
    tdec_无线电网格(行=4,列=2)
    X_radio.grid(行=4,列=3)
    toentry.grid(行=5,列跨度=4)
    root.mainloop()
    
    如果“从”和“到”都相同,则需要清除
    tosel

    def disable_按钮():
    fr=fromsel.get()
    tbin_radio.config(如果fr==2,则状态为禁用,否则为正常)
    toct_radio.config(如果fr=8,则状态为禁用,否则为正常)
    tdec_radio.config(如果fr==10,则状态为禁用,否则为正常)
    thex_radio.config(如果fr==16,则状态为禁用,否则为正常)
    映射=((2,1)、(8,2)、(10,3)、(16,4))
    映射中的if(fr,tosel.get()):
    #“from”和“to”都是相同的,所以“to”选择很清楚
    tosel.set(无)
    
    我知道这不是一个功能性示例,但我仍在研究这个示例,我被单选按钮部分卡住了。非常感谢!这实际上完全符合预期:D