Python, Tkinter, Checkbutton: Is there a way to check on/off value

ε祈祈猫儿з 提交于 2021-02-20 04:57:06

问题


what i am trying to do is setup if statements to check if a checkbuttons value is on or off

what i was thinking was something like this

from Tkinter import *

def checkbutton_value():
    #If statement here
    #is their something like 

    #if checkbox_1.onvalue == True:
    #   checkbox_2.deselect()

    #if checkbox_1.varible == checkbox_1.onvalue:
    #   checkbox_2.deselect()

    print 'Need Help on lines 7-8 or 10-11'

root=Tk()

checkbox_1 = Checkbutton(root, text='1   ', command=checkbutton_value).pack()
checkbox_2 = Checkbutton(root, text='2   ', command=checkbutton_value).pack()

checkbox_3 = Checkbutton(root, text='QUIT', command=quit).pack()

root.mainloop()

回答1:


First, do not create and pack a widget on one line. pack returns None, so in your code above, checkbox_1 is None. Instead:

checkbox_1 = Checkbutton(root, text='1   ', command=checkbutton_value)
checkbox_1.pack()

Now, to get the value of the checkbutton:

def checkbutton_value1():
    if(var1.get()):
       var2.set(0)

def checkbutton_value2():
    if(var2.get()):
       var1.set(0)

var1=IntVar()
checkbox_1 = Checkbutton(root, text='1   ', variable=var1, command=checkbutton_value1)
checkbox_1.pack()
var2=IntVar()
checkbox_2 = Checkbutton(root, text='2   ', variable=var2, command=checkbutton_value2)
checkbox_2.pack()

It is often desireable to create your own checkbutton class for things like this:

class MyCheckButton(CheckButton):
    def __init__(self,*args,**kwargs):
        self.var=kwargs.get('variable',IntVar())
        kwargs['variable']=self.var
        Checkbutton.__init__(self,*args,**kwargs)

    def is_checked(self):
        return self.var.get()


来源:https://stackoverflow.com/questions/11403723/python-tkinter-checkbutton-is-there-a-way-to-check-on-off-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!