tkinter学习-- 六、Radiobutton(单选按钮)与checkbutton(复选按钮)

Radiobutton

Radiobutton控件用于选择同一组单选按钮中的一个。
Radiobutton可以显示文本,也可以显示图像。

v=StringVar();
v.set("F")#默认选中
r1=Radiobutton(self,text="选项a",value="M",variable=StringVar)
r2=Radiobutton(self,text="选项b",value="F",variable=StringVar)

"""测试Radiobutton组件的基本用法,使用面向对象的方式"""
#set方法和get方法
from tkinter import *
from tkinter import    messagebox
class  Application(Frame):
    def __init__(self, master=None):
        super().__init__(master)  # super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.pack()
        self.createWidget()

    def createWidget(self):
        self.v=StringVar();
        self.v.set("F")#默认选中女性
        self.r1=Radiobutton(self,text="男性",value="M",variable=self.v)
        self.r2=Radiobutton(self,text="女性",value="F",variable=self.v)
        self.r1.pack(side="left");
        self.r2.pack(side="left")
        Button(self,text="确定",command=self.confirm).pack(side="left")

    def confirm(self):
        messagebox.showinfo("测试","选择的性别:"+self.v.get())
if __name__=='__main__':
    root=Tk()
    root.geometry("400x50+200+300")
    app=Application(master=root)
    root.mainloop()  

实例:

设定默认值:StringVar().set()

通过radiobutton的选择使得variable的值等于其value值,故而重设StringVar()对应的值;可以通过get()方法获得

 Checkbutton复选按钮

Checkbutton控件用于选择多个按钮的情况。
Checkbutton可以显示文本,也可以显示图像。

Checkbutton(self,text="判断题",variable=IntVar(),onvalue=1,offvalue=0)
"""测试Checkbutton组件的基本用法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class  Application(Frame):
    def __init__(self,master=None):
        super().__init__(master)#super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.pack()
        self.createWidget()
    def createWidget(self):
        self.codeHobby=IntVar();
        self.videoHobby=IntVar()
        print(self.codeHobby.get())#默认值是0
        self.c1=Checkbutton(self,text="敲代码",variable=self.codeHobby,onvalue=1,offvalue=0)
        self.c2=Checkbutton(self,text="看视频",variable=self.videoHobby,onvalue=1,offvalue=0)
        self.c1.pack(side="left");
        self.c2.pack(side="left")
        Button(self,text="确定",command=self.confirm).pack(side="left")

    def confirm(self):
        if  self.videoHobby.get()==1:
            messagebox.showinfo("测试","看视频,都是正常人有的爱好!你喜欢看什么类型?")
        if  self.codeHobby.get()==1:
            messagebox.showinfo("测试","抓获野生程序猿一只,赶紧送给他尚学堂的视频充饥")
if __name__=='__main__':
    root=Tk()
    root.geometry("400x50+200+300")
    app=Application(master=root)
    root.mainloop()

Checkbutton有选择的0,1两种状态,

参数中设定variable=IntVar()(表示整型)值, onvalue=1,offvalue=0

当点选时onvalue,offvalue的值会传递给variable,InVar(),可以通过InVar()对象获得的值进行判断等操作

         

  

原文地址:https://www.cnblogs.com/yescarf/p/13898197.html