Pythontkinter(三)单选框(Radiobutton)组件的属性说明及
⽰例
Python tkinter 单选框组件⽤于tkinter GUI⾥添加单选按钮,单选框可以添加⽂本和图像。当单选框勾选时,可以执⾏指定的函数,或者获取勾选的值。
使⽤语法
widget = Radiobutton( master, parameter=value, ... )
master:按钮控件的⽗容器
parameter:按钮的参数
value:参数对应的值
各参数之间以逗号分隔。
参数说明
text单选框⽂本显⽰
variable关联单选框执⾏的函数
value⽤于多个单选框值的区别
.set(value)默认选中指定的单选框
relief单选框的边框样式显⽰,可选项包括FLAT/SUNKEN/RAISED/GROOVE/RIDGE
height单选框的⾼度,需要结合单选框的边框样式才能展⽰出效果
width单选框的宽度,需要结合单选框的边框样式才能展⽰出效果
bd单选框边框样式的宽度,需要结合单选框的边框样式才能展⽰出效果
activebackground⿏标点击单选框时显⽰的前景⾊
activeforeground⿏标点击单选框时显⽰的背景⾊
bg单选框显⽰的前景⾊
fg单选框显⽰的背景⾊
font单选框的⽂字字体、字号、字形,字形可选项包括bold/italic/underline/overstrike
image单选框显⽰图⽚,图⽚必须是gif格式,并且图⽚需要⽤PhotoImage赋值给变量,然后变量赋值给
image
justify单选框⽂字对齐⽅式,可选项包括LEFT, RIGHT, CENTER
wraplength限制每⾏的⽂字,单选框⽂字达到限制的字符后,⾃动换⾏
underline下划线。取值就是带下划线的字符串索引,为 0 时,第⼀个字符带下划线,为 1 时,第两个字符带
下划线,以此类推
.config(state=)单选框的状态,状态可选项有DISABLED/NORMAL/ACTIVE
源码⽰例
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
from tkinter import *
class radiobutton:
def __init__(self):
root = Tk()
root.title("单选框") # 设置窗⼝标题
'''单选框样式'''
# 指定Radiobutton的事件处理函数
iv_command = IntVar()
self.rb_function_Label = Label(root, text='关联函数:')
self.rb_function = Radiobutton(root, text='执⾏函数', command=self.function1, variable=iv_command) # 单选框默认选择
iv_default = IntVar()
self.rb_default_Label = Label(root, text='默认选择:')
self.rb_default1 = Radiobutton(root, text='单选框1', value=1, variable=iv_default)
self.rb_default2 = Radiobutton(root, text='单选框2', value=2, variable=iv_default)
iv_default.set(1)
# 单选框样式
iv_style = IntVar()
self.rb_style_Label = Label(root, text='显⽰边框样式:')
self.rb_style1 = Radiobutton(root, text='边框平坦', value=1, variable=iv_style, relief=FLAT)
self.rb_style2 = Radiobutton(root, text='边框凹陷', value=2, variable=iv_style, relief=SUNKEN)
self.rb_style3 = Radiobutton(root, text='边框凸起', value=3, variable=iv_style, relief=RAISED)
self.rb_style4 = Radiobutton(root, text='边框压线', value=4, variable=iv_style, relief=GROOVE)
self.rb_style5 = Radiobutton(root, text='边框脊线', value=5, variable=iv_style, relief=RIDGE)
# 单选框⾼度,height='⾼度',wideth='宽度',单选框的⾼度和宽度必须和边框样式⼀起使⽤才有效果
iv_xy = IntVar()
self.rb_xy_Label = Label(root, text='单选框边框xy:')
self.rb_height = Radiobutton(root, text='边框⾼度', value=1, variable=iv_xy, relief=RAISED, height=2) self.rb_wideth = Radiobutton(root, text='边框⾼度', value=2, variable=iv_xy, relief=RAISED, width=16) # 单选框边框⼤⼩,bd='边框⼤⼩',单选框的边框效果必须和边框样式⼀起使⽤才有效果
iv_border = IntVar()
self.rb_border_Label = Label(root, text='单选框边框⼤⼩:')
self.rb_border = Radiobutton(root, text='边框⼤⼩', variable=iv_border, relief=RAISED, bd=5)
# ⿏标点击到单选框后改变颜⾊,activebackground='背景⾊',activeforeground='前景⾊'
iv_click_colour = IntVar()
self.rb_click_colour_Label = Label(root, text='⿏标点击颜⾊:')
self.rb_click_colour1 = Radiobutton(root, text='前景⾊', value=1, variable=iv_click_colour,
activebackground='blue')
self.rb_click_colour2 = Radiobutton(root, text='背景⾊', value=2, variable=iv_click_colour,
activeforeground='blue')
# 单选框颜⾊,bg='背景⾊', fg='前景⾊'
iv_colour = IntVar()
self.rb_colour_Label = Label(root, text='单选框颜⾊:')
self.rb_colour1 = Radiobutton(root, text='前景⾊', value=1, variable=iv_colour, bg='blue')
self.rb_colour2 = Radiobutton(root, text='背景⾊', value=2, variable=iv_colour, fg='blue')
# 单选框⽂字字体格式, font=('字体', 字号, 'bold/italic/underline/overstrike')
iv_font = IntVar()
self.rb_font_Label = Label(root, text='显⽰边框样式:')
self.rb_font1 = Radiobutton(root, text='软体雅⿊/12/重打印', value=1, variable=iv_font,
font=('软体雅⿊', 10, 'overstrike'))
self.rb_font2 = Radiobutton(root, text='宋体/12/斜体', value=2, variable=iv_font, font=('宋体', 10, 'italic')) self.rb_font3 = Radiobutton(root, text='⿊体/12/加粗', value=3, variable=iv_font, font=('⿊体', 10, 'bold')) self.rb_font4 = Radiobutton(root, text='楷体/12/下划线', value=4, variable=iv_font,
font=('楷体', 10, 'underline'))
# 单选框图⽚设置,image=图⽚变量。图⽚必须以变量的形式赋值给image,图⽚必须是gif格式。
iv_image = IntVar()
self.rb_image_Label = Label(root, text='单选框图⽚:')
gif = PhotoImage(file="1.gif")
self.rb_image = Radiobutton(root, variable=iv_image, image=gif)
# 单选框⽂字对齐⽅式,可选项包括LEFT, RIGHT, CENTER
# 单选框⽂字对齐⽅式,可选项包括LEFT, RIGHT, CENTER
iv_aligning = IntVar()
self.rb_aligning_Label = Label(root, text='⽂字对齐⽅式:')
self.rb_aligning1 = Radiobutton(root, text='左对齐\n⽂字左侧对齐', value=1, variable=iv_aligning, justify=LEFT)
self.rb_aligning2 = Radiobutton(root, text='居中对齐\n⽂字居中对齐', value=2, variable=iv_aligning, justify=CENTER) self.rb_aligning3 = Radiobutton(root, text='右对齐\n⽂字右侧对齐', value=3, va
riable=iv_aligning, justify=RIGHT)
# 单选框达到限制字符后换⾏显⽰
iv_linefeed = IntVar()
self.rb_linefeed_Label = Label(root, text='⽂字换⾏显⽰:')
self.rb_linefeed = Radiobutton(root, text='1234567890', variable=iv_linefeed, wraplength=30)
# 下划线。取值就是带下划线的字符串索引,为 0 时,第⼀个字符带下划线,为 1 时,第两个字符带下划线,以此类推 iv_underline = IntVar()
self.rb_underline_Label = Label(root, text='⽂字标下划线:')
self.rb_underline = Radiobutton(root, text='12345', variable=iv_underline, underline=2)
# 单选框状态
iv_status = IntVar()
self.rb_status_Label = Label(root, text='按钮状态:')
self.rb_disabled = Radiobutton(root, text='禁⽤状态', value=1, variable=iv_status)
htmlradio的text出不来self.fig(state=DISABLED)
self.rb_usual = Radiobutton(root, text='普通状态', value=2, variable=iv_status)
self.fig(state=NORMAL)
self.rb_active = Radiobutton(root, text='活跃状态', value=3, variable=iv_status)
self.fig(state=ACTIVE)
'''grid布局'''
self.rb_id(row=1, column=0, sticky='E')
self.id(row=1, column=1, sticky='W')
self.rb_id(row=2, column=0, sticky='E')
self.id(row=2, column=1, sticky='W')
self.id(row=2, column=2, sticky='W')
self.id(row=2, column=3, sticky='W')
self.rb_id(row=3, column=0, sticky='E')
self.id(row=3, column=1, sticky='W')
self.id(row=3, column=2, sticky='W')
self.id(row=3, column=3, sticky='W')
self.id(row=3, column=4, sticky='W')
self.id(row=3, column=5, sticky='W')
self.rb_id(row=4, column=0, sticky='E')
self.id(row=4, column=1, sticky='W')
self.id(row=4, column=2, columnspan=2, sticky='W')
self.rb_id(row=5, column=0, sticky='E')
self.id(row=5, column=1, sticky='W')
self.rb_click_id(row=6, column=0, sticky='E')
self.rb_id(row=6, column=1, sticky='W')
self.rb_id(row=6, column=2, sticky='W')
self.rb_id(row=7, column=0, sticky='E')
self.id(row=7, column=1, sticky='W')
self.id(row=7, column=2, sticky='W')
self.rb_id(row=8, column=0, rowspan=2, sticky='E')
self.id(row=8, column=1, columnspan=2, sticky='W')
self.id(row=8, column=3, columnspan=2, sticky='W')
self.id(row=9, column=1, columnspan=2, sticky='W')
self.id(row=9, column=3, columnspan=2, sticky='W')
self.rb_id(row=10, column=0, sticky='E')
self.id(row=10, column=1, columnspan=3, sticky='W')
self.rb_id(row=11, column=0, sticky='E')
self.id(row=11, column=1, sticky='W')
self.id(row=11, column=2, sticky='W')
self.id(row=11, column=3, sticky='W')
self.rb_id(row=12, column=0, sticky='E')
self.id(row=12, column=1, sticky='W')
self.rb_id(row=13, column=0, sticky='E')
self.id(row=13, column=1, sticky='W')
self.rb_id(row=14, column=0, sticky='E')
self.id(row=14, column=1, sticky='W')
self.id(row=14, column=2, sticky='W')
self.id(row=14, column=2, sticky='W') self.id(row=14, column=3, sticky='W') root.mainloop()
def function1(self):
print('选中function1')
if __name__ == '__main__':
radiobutton()
效果展⽰
相关⽂档推荐:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论