Python Tkinter 之Radiobutton控件(Python GUI 系列8)

Python Tkinter 之Radiobutton控件(Python GUI 系列8)

1. 序言

    本章介绍Tkinter的 Radiobutton 控件,本文是Python GUI系列的第8篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。

2. 环境信息

********************************
本系列运行平台:Mac OS 10.13.4
Python 版本:3.6.4

********************************   

3. Radiobutton

    单选按钮是一种可在多个预先定义的选项中选择出一项的Tkinter 控件. 单选按钮可显示文字或图片. 显示文字时只能使用预设字体. 该控件可以绑定一个Python 函数或方法, 当单选按钮被选择时, 该函数或方法将被调用. 

    单选按钮(Radio Button) 这个名字来源于收音机(Radio) 上的调频按钮, 这些按钮用来选择特定波段或预设电台. 如果一个按钮被按下, 其他同类的按钮就会弹起, 即同时只有一个按钮可被按下. 

    一组单选按钮控件和同一个变量关联. 点击其中一个单选按钮将把这个变量设为某个预定义的值。

    一般用法:Radiobutton(myWindow,options),其中option与Checkbutton,Button大多重合,用法一致。

函数

描述

text

显示文本内容

command

指定Radiobutton的事件处理函数

image

可以使用gif图像,图像的加载方法img = PhotoImage(root,file = filepath)

bitmap

指定位图,如bitmap= BitmapImage(file = filepath)

variable

控制变量,跟踪Radiobutton的状态,On(1),Off(0)

master

代表了父窗口

bg

背景色,如bg=”red”, bg="#FF56EF"

fg

前景色,如fg=”red”, fg="#FF56EF"

font

字体及大小,如font=("Arial", 8),font=("Helvetica 16 bold italic")

height

设置显示高度、如果未设置此项,其大小以适应内容标签

relief

指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridge、solid、sunken

width

设置显示宽度,如果未设置此项,其大小以适应内容标签

wraplength

将此选项设置为所需的数量限制每行的字符,数默认为0

state

设置组件状态;正常(normal),激活(active),禁用(disabled)

selectcolor

设置选中区的颜色

selectimage

设置选中区的图像,选中时会出现

underline

With the default value of -1, none of the characters of the text label are underlined. Set this option to the inde

bd

设置Radiobutton的边框大小;bd(bordwidth)缺省为1或2个像素

textvariable

设置Radiobutton的textvariable属性,文本内容变量

padx

标签水平方向的边距, 默认为1像素

pady

标签竖直方向的边距, 默认为1像素.

justify

标签文字的对齐方向, 可选值为 RIGHT, CENTER, LEFT, 默认为 Center

4. 实例

from Tkinter import*

#初始化Tk()
myWindow=Tk()
myWindow.title('Python GUI Learning')
v=IntVar()
#列表中存储的是元素是元组
language=[('python',0),('C++',1),('C',2),('Java',3)]
#定义单选按钮的响应函数
def callRB():
    for i in range(4):
        if (v.get()==i):
            root1 = Tk()
            Label(root1,text='你的选择是'+language[i][0]+'!',fg='red',width=20,height=6).pack()
            Button(root1,text='确定',width=3,height=1,command=root1.destroy).pack(side='bottom')

Label(myWindow,text='选择一门你喜欢的编程语言').pack(anchor=W)

#for循环创建单选框
for lan,num in language:
    Radiobutton(myWindow, text=lan, value=num, command=callRB, variable=v).pack(anchor=W)
#进入消息循环
myWindow.mainloop()

运行结果:


点击其中一个选项:


  

猜你喜欢

转载自blog.csdn.net/jin_kwok/article/details/80040738