zoukankan      html  css  js  c++  java
  • tkinter学习-选择按钮

    阅读目录

    • Checkbutton
    • Radiobutton 
    • LabelFrame

    checkbutton :

      说明:多选框控件,用于在程序中提供多项选择框,但是处理“多选一”的问题,还是交给 Radiobutton 或 Listbox 组件来实现吧。

      用法:使用 Checkbutton,你必须创建一个 Tkinter 变量用于存放按钮的状态:

    from tkinter import *
    root = Tk() v1 = IntVar() #用来表示按钮是否选中 v2 = IntVar() c1 = Checkbutton(root,text='python',variable=v1) c2 = Checkbutton(root,text='java',variable=v2) c1.pack() c2.pack() mainloop()

    结果 :

          

      用法:默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0。你可以使用 onvalue 和 offvalue 选项修改它们的值,例如下边代码,只要 var 被设置为“T”即选中状态, 设置为“F”则相反。

    from tkinter import *
    root = Tk()                    
    v = IntVar()
    v.set('T')
    c = Checkbutton(root,text = '测试',variable = v,onvalue='T',offvalue='F')
    c.pack()                 
    l = Label(root,textvariable = v)
    l.pack()
    mainloop()

    结果:

        

      用法:如果选项多的话可以用列表,代码如下:

    from tkinter import *
    root = Tk()
    GIRLS = ['西施','貂蝉','王昭君','杨玉环']
    v = []
    for girl in GIRLS:
        v.append(IntVar())              #这里注意 IntVar()
        b = Checkbutton(root,text=girl,variable=v[-1])  #这里注意 variable[-1]
        b.pack(anchor=W)         #这个是左对齐
    mainloop()

    把Checkbutton组件都向左对齐,可以设置pick()方法的anchor选项,

    anchor选项指定显示的位置,有 N,S,W,E,等组成。

    结果:

        

    Radiobutton:

      说明:单选按钮控件,显示一个单选的按钮状态,需要设置不同的value值。

    from tkinter import *
    root = Tk()
    LANGS = [
        ('python',1),
        ('perl',2),
        ('c',3),
        ('java',4)]
    v = IntVar()          #这里注意
    v.set(1)            #默认是选第一个
    for lang,num in LANGS:
        b = Radiobutton(root,text=lang,variable=v,value=num)
        b.pack(anchor=W)    
    mainloop()

    结果:

                       

    如果不喜欢前面的小圆圈,还可以去掉前面的小圆圈,indicatoron设置为False就可以去掉前面的小圆圈。 

    b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False)
    b.pack(fill=X)    #横向填充

    LabelFrame:

      说明:labelframe 是一个简单的容器控件,常用与复杂的窗口布局。

    from tkinter import *
    root = Tk()
    group = LabelFrame(root,text="最好的脚本语言?",padx=5,pady=5)
    group.pack(padx=10,pady=10)
    LANGS=[
        ('python',1),
        ('java',2),
        ('c',3)]
    v = IntVar()
    v.set(1)
    for long,num in LANGS:
        b = Radiobutton(group,text=long,variable=v,value=num)
        b.pack(anchor=W)
    mainloop()
        

    结果:

        

    参考文献:

        小甲鱼的python教学视频

  • 相关阅读:
    Asp.Net基础 9.Web开发原则
    JavaScript – 1.事件 + 2.变量 + 3.判断变量初始化 + 4.函数的声明 + 5.匿名函数
    DOM – 3.window对象的属性
    Dom – 1.window对象事件 + 2.body、document对象的事件
    faint
    开会
    it's over
    so funny
    no topic
    震惊:有良医生揭无良献血内幕!
  • 原文地址:https://www.cnblogs.com/mengd/p/7287119.html
Copyright © 2011-2022 走看看