[转]Tkinter教程之Radiobutton篇

上一篇 / 下一篇  2011-07-12 17:30:07 / 个人分类:Python-Tkinter

#Tkinter教程之Radiobutton篇
#
Radiobutton为单选按钮,即在同一组内只能有一个按钮被选中,每当选中组内的一个按钮时,其它的按钮自动改为非选中态,与其他控件不同的是:它有组的概念
'''1.创建一个简单的Radiobutton'''
from tkinter import *
root 
= Tk()
Radiobutton(root,text 
= 'python').pack()
Radiobutton(root,text 
= 'tkinter').pack()
Radiobutton(root,text 
= 'widget').pack()
root.mainloop()
#不指定绑定变量,每个Radiobutton自成一组

'''2.创建一个Radiobutton组,使用绑定变量来设置选中的按钮'''
from tkinter import *
root 
= Tk()
#创建一个Radiobutton组,创建三个Radiobutton,并绑定到整型变量v
#
选中value=1的按钮
= IntVar()
v.set(
1)
for i in range(3):
    Radiobutton(root,variable 
= v,text = 'python',value = i).pack()

root.mainloop()
'''3.创建两个不同的组'''
from tkinter import *
root 
= Tk()
vLang 
= IntVar()
vOS 
= IntVar()
vLang.set(
1)
vOS.set(
2)

for v in [vLang,vOS]:    #创建两个组
    for i in range(3):    #每个组含有3个按钮
        Radiobutton(root,
                    variable 
= v,
                    value 
= i,
                    text 
= 'python' + str(i)
                    ).pack()
root.mainloop()
#不同的组,各个按钮互不影响。

'''4.如果同一个组中的按钮使用相同的value,则这两个按钮的工作方式完全相同'''
# -*- coding: cp936 -*-
from tkinter import *
root 
= Tk()
= IntVar()
v.set(
1)
for i in range(3):
    Radiobutton(root,
                variable 
= v,
                value 
= 1,
                text 
= 'python' + str(i)
                ).pack()
for i in range(3):
    Radiobutton(root,
                    variable 
= v,
                    value 
= i,
                    text 
= 'python' + str(2 + i)
                    ).pack()
root.mainloop()
#上述的例子中共有4个value为1的值,当选中其中的一个时,其他三个也会被选中;选中除了这四个只外的按钮时,四个按钮全部取消

'''5.与Checkbutton类似,每个Radiobutton可以有自己的处理函数,每当点击按钮时,系统会调用相应的处理函数'''
# -*- coding: cp936 -*-
from tkinter import *
root 
= Tk()
= IntVar()
v.set(0)
def r1():
    
print 'call r1'
def r2():
    
print 'call r2'
def r3():
    
print 'call r3'
def r4():
    
print 'call r4'
= 0
#创建8个按钮,其中两个两个的value值相同
for r in [r1,r2,r3,r4]:
    Radiobutton(root,
                    variable 
= v,
                    text 
= 'radio button',
                    value 
= i,
                    command 
= r
                    ).pack()
    Radiobutton(root,
                    variable 
= v,
                    text 
= 'radio button',
                    value 
= i,
                    command 
= r
                    ).pack()
    i 
+= 1
    
root.mainloop()
#注意虽然同时可以选中两个按钮,但每次点击按钮,执行的代码只有一次

'''6.Radiobutton另一个比较实用的属性是indicatoron,缺省情况下为1,如果将这个属性改为0,则其外观是Sunken'''
from tkinter import *
root 
= Tk()
= IntVar()
v.set(
1)
for i in range(3):
    Radiobutton(root,
                    variable 
= v,
                    indicatoron 
= 0,
                    text 
= 'python & tkinter',
                    value 
= i
                    ).pack()
root.mainloop()
#Radiobutton表示按钮的弹起或按下两种状态

#author:     jcodeer
#
blog:    jcodeer.cublog.cn
#
email:    jcodeer@126.com

TAG:

 

评分:0

我来说两句

Open Toolbar