'''
Created on 2017年9月8日

@author: Nick
'''
'''Tkinter之Checkbutton篇'''

#_*_coding:utf-8_*_
import tkinter as tk
from tkinter import *


#回调函数
def callCheckbutton():
    print('Your check this button!')
    
#回调函数,改变v的值,即改变Checkbutton的显示值
def changeCheckbuttoText():
    e.set('Tkinker')



if __name__ == '__main__':
    root = tk.Tk()
    root.wm_title('Checkbutton')
    root.geometry("1800x800+120+100")         #设置窗口大小  并初始化桌面位置
    root.resizable(width = True,height = True)  #宽不可变 高可变  默认True
    
    #1、设置Checkbutton的回调函数
    # Checkbutton又称为多选按钮,可以表示两种状态:On和Off,可以设置回调函数,每当点击此按钮时回调函数被调用
    # 不管Checkbutton的状态如何,此回调函数都会被调用
    fram1 = Frame(root)
    Checkbutton(fram1,text = 'python').pack(side = LEFT)
    Checkbutton(fram1,text = 'python1',command = callCheckbutton).pack(side = LEFT)
    fram1.pack(side = TOP)
    
    #2、通过回调函数改变Checkbutton的显示文本text的值
    fram2 = Frame(root)
    e = StringVar()
    e.set('python2')
    #绑定v到Checkbutton的属性textvariable
    cb = Checkbutton(fram2, text = 'python2',textvariable = e,command = changeCheckbuttoText)
    cb.focus_set()
    cb.pack(side = LEFT)

    fram2.pack(side = TOP)
    
    #3、上述的textvariable使用方法与Button的用法完全相同,使用此例是为了区别Checkbutton的另外的一个属性variable,
    # 此属性与textvariable不同,它是与这个控件本身绑定,Checkbutton自己有值:On和Off值,缺省状态On为1,Off为0,
    fram3 = Frame(root)
    #将一整数与Checkbutton的值绑定,每次点击Checkbutton,将打印出当前的值
    def changeCheckbutton():
        print(e.get())
    e = IntVar()
    Checkbutton(fram3,text = 'python3',variable = e,command = changeCheckbutton).pack(side = LEFT)
    fram3.pack(side = TOP)
    
    #4、Checkbutton的值不仅仅是1或0,可以是其他类型的数值,可以通过onvalue和offvalue属性设置Checkbutton的状态值,
    # 如下代码将On设置为'python',Off值设置为'Tkinter',程序的打印值将不再是0或1,而是'Tkinter’或‘python
    fram4 = Frame(root)
    def changCheckbutton_onoff():
        print(e.get())
    e = StringVar()
    Checkbutton(fram4,text = 'python4',
                variable = e,
                onvalue = 'CheckOn',  #设置On的值
                offvalue = 'CheckOff', #设置Off的值
                command = changCheckbutton_onoff).pack(side = LEFT)
    fram4.pack(side = TOP)
    
    #6、还有其他的属性fg/bg/relief/width/height/justify/state使用方法与Button相同
    fram5 = Frame(root)
    # 设置前景色、背景色fg/bg
    Checkbutton(fram5,text = 'python5',fg = 'red').pack(side = LEFT)
    Checkbutton(fram5,text = 'python6',bg = 'green').pack(side = LEFT)
    
    # 设置宽度,高度
    Checkbutton(fram5,text = 'python7',
                fg = 'yellow',
                bg = 'blue',
                width = 20,height = 3).pack(side = LEFT)
    fram5.pack(side = TOP)
    
    # 设置relief属性文本框风格,如凹陷、凸起,值有:flat/sunken/raised/groove/ridge
    fram6 = Frame(root)
    Checkbutton(fram6,text = 'python8',fg = 'yellow',relief = 'flat').pack(side = LEFT)
    Checkbutton(fram6,text = 'python9',fg = 'red',relief = 'sunken').pack(side = LEFT) 
    Checkbutton(fram6,text = 'python10',fg = 'green',relief = 'raised').pack(side = LEFT) 
    Checkbutton(fram6,text = 'python11',fg = 'blue',relief = 'groove').pack(side = LEFT) 
    Checkbutton(fram6,text = 'python12',fg = 'purple',relief = 'ridge').pack(side = LEFT)     
    fram6.pack(side = TOP)
    
    #设置Checkbutton状态state = normal/active/disabled
    fram7 = Frame(root)
    Checkbutton(fram7,text = 'python13',fg = 'yellow',state = 'normal').pack(side = LEFT)
    Checkbutton(fram7,text = 'python14',fg = 'red',state = 'active').pack(side = LEFT) 
    Checkbutton(fram7,text = 'python15',fg = 'green',state = 'disabled').pack(side = LEFT) 
 
    fram7.pack(side = TOP)
    
    
    
    root.mainloop()


本文转载:CSDN博客