tkinter窗口组件RadioButton
import tkinter
# 主窗口的类,使用root接收一下
root = tkinter.Tk()
# 标题
root.title("My table")
# 像素
width, height = 300, 500
# 获得屏幕的最大尺寸
width_max, height_max = root.maxsize()
# 使页面显示在屏幕正中间
s_center = '%dx%d+%d+%d' % (width, height, (width_max - width) / 2, (height_max - height) / 2)
print(s_center)
# 设置屏幕大小
root.geometry(s_center)
# 如果是true代表可以拉伸 false 不可拉伸
root.resizable(width=True, height=True)
# 怎么设置RadioButton
var1 = tkinter.StringVar()
var1.set('小明')
tkinter.Radiobutton(root, textvariable=var1, value=1).pack(anchor=tkinter.W)
# 演示值相同效果
tkinter.Radiobutton(root, text='小华', value=0).pack(anchor=tkinter.W)
tkinter.Radiobutton(root, text='小敏', value=2).pack(anchor=tkinter.W)
# 多选一 按钮
# 其中value 值必须每个设定不一致,如果设置出现一致的,那么按钮选中这个值的时候会把这个value一致的选项也选中
# varible因为是多选一,所以他们共享一个文本变量,通过下面按钮选项可以查看他们的选中状态
var = tkinter.IntVar()
names = [(1, 'C语言'), (2, 'Python'), (3, 'C++'), (4, 'C#'), (5, 'JAVA')]
# variable 选中的时候通过这个变量获取选中的值
[tkinter.Radiobutton(root, text=name, variable=var, value=index).pack(anchor=tkinter.W) for index, name in names]
def fun():
print("你选中的值为:", var.get())
b1 = tkinter.Button(root, text='打印选中项', command=fun)
b1.pack()
root.mainloop()
Scale组件
import tkinter
# 主窗口的类,使用root接收一下
root = tkinter.Tk()
# 标题
root.title("My table")
# 像素
width, height = 300, 500
# 获得屏幕的最大尺寸
width_max, height_max = root.maxsize()
# 使页面显示在屏幕正中间
s_center = '%dx%d+%d+%d' % (width, height, (width_max - width) / 2, (height_max - height) / 2)
print(s_center)
# 设置屏幕大小
root.geometry(s_center)
# 如果是true代表可以拉伸 false 不可拉伸
root.resizable(width=True, height=True)
# 刻度组件
# 默认的刻度组件没有长度的显示
tkinter.Scale(root).pack()
# 代表横向摆放的刻度
orient = tkinter.HORIZONTAL
tkinter.Scale(root, orient=tkinter.HORIZONTAL).pack()
# length = 400,代表多少像素的长度
# from_:起始值 to:结束值 默认精度是1
# tickinterval会显示下面刻度间隔的数字默认显示刻度是按照间隔1
# label就是在刻度上显示一个文本
# showvalue 默认True:显示滑动的时候刻度,如果设置False在滑动的时候将不显示当前的刻度
# resolution=0.2表示拉一次走0.2
tkinter.Scale(root, label='刻度名称', from_=1, to=20, tickinterval=2, length=400,
showvalue=False, orient=tkinter.HORIZONTAL).pack()
tkinter.Scale(root, label='刻度名称', from_=1, to=20, tickinterval=2, length=400,
showvalue=True, resolution=0.2, orient=tkinter.HORIZONTAL).pack()
def fun(num):
var.set('当前刻度:' + num)
# 代表的是精度,如果设置0.1那么所有int数值的显示都会变成float对应精度的小数,每个移动的距离也变成了这个精度值
# resolution = 0.1
s = tkinter.Scale(root, label='我是一个刻度', orient=tkinter.HORIZONTAL, length=200,
showvalue=True, resolution=0.1, tickinterval=2, from_=1, to=10,
command=fun)
s.pack()
var = tkinter.StringVar()
var.set('I chose was' + str(s.get()))
tkinter.Label(root, textvariable=var, bg='yellow', width=16, font=('宋体', 16)).pack()
def set_func():
s.set(6)
tkinter.Button(root, text='设置刻度滑动的位置', command=set_func).pack()
root.mainloop()