• Python tkinter -- 第12章 Scale属性


    第12章 Scale
    Scale组件主要通过滑块来表示某个范围内的一个数字。你可以设置最小值和最大值,滚动的滑条取值在最大值和最小值之间。典型使用情形是在需要输入一个特定范围内的数值的时候,比如体温。

    12.1 属性

    属性描述
    activebackground当鼠标放上去时,Scale的背景色
    backgroud
    bg
    按钮的背景色
    bigincrement快速调整数值的步长。
    borderwidth
    bd
    边框的大小,默认为 2 个像素
    command关联的函数,当按钮被点击时,执行该函数
    digitsScale的数值。
    cursor光标的形状设定,如arrow, circle, cross, plus 等
    font文本字体
    foreground
    fg
    选项的前景色
    from起始数值。默认值是0
    highlightcolor聚焦的高亮颜色
    highlightbackground聚焦的高亮背景颜色
    highlightthickness聚焦高亮边框宽度
    label标签。
    lengthScale的长度
    orient设置Scale的方向。可以是VERTICAL或者是HORIZONAL
    relief边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
    repeatdelay默认值是300
    repeatinterval默认值是100
    resolution默认值是1
    showvalue默认值是1。
    sliderlength默认值是30
    sliderrelief定义滑块的装饰效果。参加relief属性。
    stateScale状态,默认为 state=NORMAL
    takefocus表示可以使用Tab键移动焦点到该控件。默认值是空字符串。
    tickinterval默认值是0
    to最大值或者结束值。默认是100。
    troughcolor滑动槽颜色
    variable与Scale关联的变量。
    width定义Scale的宽度。默认值是15

    12.1.1 activebackground
    设置鼠标经过Scale控件时,滑块的颜色。

    root=tk.Tk()
    root.geometry('300x240')
    b1=tk.Scale(root,length=200,orient=tk.HORIZONTAL,
                activebackground='red')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果:
    在这里插入图片描述
    12.1.2 backgroud(bg)
    设置Scale控件的背景颜色。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    b1=tk.Scale(root,length
    =200,orient=tk.HORIZONTAL,bg='green')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    在这里插入图片描述

    12.1.3 borderwidth(bd)
    设置Scale控件边框宽度。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,bd=10)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    在这里插入图片描述
    12.1.4 bigincrement
    设置快速调整步长。当Scale控件获得输入焦点后,按下CTRL键的同时,使用左右箭头或者上下箭头按键,会以bigincrement定义的数值来快速调整数值。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,bd=10,
                takefocus=1,bigincrement=5)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    12.1.5 command
    设置回调函数。只有一个参数值,就是Scale控件的新的位置。如果滑块快速地移动,函数可能无法获得每一个位置,但一定会获得滑块停下时的最终位置。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    def pos(value):
        print(value)
        
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,command=pos)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    12.1.6 digits
    设置最多显示多少位数字。默认情况下,Scale的数值范围是(0,100)。假如digits=5,表示最多可以显示5位数字。由于最大数值位100,5位数字就是100.00。可以看到Scale的数值显示为x.00。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
        
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,digits=5)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述
    12.1.7 cursor
    鼠标经过Scale控件时的形状。鼠标的形状详细说明见3.3.6节。
    12.1.8 font
    字体大小。字体的详细说明3.3.3节。
    12.1.9 foreground(fg)
    设置前景颜色。就是显示Scale数值的颜色。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
        
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,fg='blue')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述
    12.1.10 from 和 to
    设置Scale的起始值以及结束值。默认from=0,to=100。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
        
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,from_=20,to=40)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    说明:由于from是关键字,所以用from_来替代。
    12.1.11 highlightcolor、highlightbackground和highlightthickness
    在Scale获得输入焦点的时候,显示的获得焦点时颜色,失去焦点时颜色和边框的宽度。需要设置takefocus=1,同时使用Tab键,让Scale控件获得输入焦点。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
        
    b1=tk.Scale(root,length
    =200,orient=tk.HORIZONTAL,takefocus=1,
                highlightcolor='red',
                highlightbackground='blue',
                highlightthickness=10)
    b1.pack()
    tk.Entry(root).pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果:
    在这里插入图片描述
    在这里插入图片描述
    12.1.12 label
    显示提示信息,可以用来表示此Scale控件是做什么用的。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,label='数值')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述
    12.1.13 length
    Scale控件的长度。单位是像素。这个就是Scale控件在屏幕上显示的长度。
    12.1.14 orient
    设置Scale的类型,有水平和垂直两种。
    12.1.15 relief
    Scale的3D外观。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                relief='groove')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述
    12.1.16 repeatdelay
    定义滑块开始连续移动的延迟时间,单位时毫秒,默认值是300。当鼠标在滑动槽按下并保持,到滑块开始连续移动的时间间隔就是repeatdelay。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                repeatdelay=1000)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    12.1.17 repeatinterval
    当滑块开始移动后,滑块每次移动之间的时间间隔是repeatinterval来定义的。默认值是100,单位是毫秒。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                repeatdelay=2000,
                repeatinterval=500)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    说明:repeatdelay是滑块开始连续移动前的时间间隔,而repeatinterval是滑块开始连续移动后的时间间隔。
    12.1.18 resolution
    滑块移动的粒度,就是每次移动数值的变化。默认值是1,也可以定义为其他的数值,比如0.1等。
    12.1.19 showvalue
    是否显示当前的数值。如果showvalue=False,则不再显示数值。showvalue=True,会在滑动槽的上方(水平Scale)或者左边(垂直Scale)显示数值。默认是显示数值。
    12.1.20 sliderlength
    滑块的大小。默认值是30。单位是像素。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                sliderlength=100)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述
    12.1.21 sliderrelief
    定义滑块的3D效果。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                sliderrelief='groove')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述
    12.1.22 state
    定义Scale控件的状态。有三种:NORMAL,DISABLED,ACTIVE
    12.1.23 takefocus
    是否可以通过Tab键获得输入焦点。
    12.1.24 tickinterval
    显示刻度,并定义刻度的粒度。比如例子中用的是20。如果刻度过细,可能导致刻度重叠显示而看不清。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                tickinterval=20)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述
    12.1.25 troughcolor
    设置滑动槽的背景颜色。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,
                troughcolor='red')
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述
    12.1.26 variable
    定义与Scale控件关联的变量,可以是IntVar(),DoubleVar()和StringVar()。可以通过关联的变量获取Scale的当前数值,以及设置Scale的数值。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    
    value=tk.StringVar()
    v=tk.StringVar()
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,variable=value)
    b1.pack()
    b3=tk.Entry(root,textvariable=v)
    
    def set1():
        value.set(b3.get())
    
    def get():
        v.set(value.get())
        
    b2=tk.Button(root,text='Set',command=set1)
    b2.pack()
    b4=tk.Button(root,text='Get',command=get)
    b4.pack()
    b3.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    结果:
    在这里插入图片描述
    12.1.27 width
    设置Scale的宽度。默认是16。

    import tkinter as tk
    root=tk.Tk()
    root.geometry('300x240')
    b1=tk.Scale(root,length=200,
                orient=tk.HORIZONTAL,width=50)
    b1.pack()
    root.mainloop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    在这里插入图片描述

  • 相关阅读:
    仿网易云移动端项目Vue3.2+Pinia+Vant+axios
    数据结构学习系列之双向链表的两种创建方式
    led学生台灯哪个品牌好?2022学生台灯品牌排行榜
    C中无符号数与有符号数的运算
    Go-函数作为参数传递
    数据结构复习笔记6.2:图的存储和遍历
    ELK入门(二)- springboot整合ES
    【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}
    动态规划之买卖股票全解析【通俗易懂】
    HTML的有序列表、无序列表、自定义列表
  • 原文地址:https://blog.csdn.net/weixin_42272768/article/details/100761500