zoukankan      html  css  js  c++  java
  • Python (八)Tkinter窗口组件:Scrollbar

    The Tkinter Scrollbar Widget

    ##简介

    Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条。Scrollbar 组件常常被用于实现文本、画布和列表框的滚动。

    ##何时使用 Scrollbar 组件?

    Scrollbar 组件通常几乎与 Text 组件、Canvas 组件和 Listbox 组件一起使用,水平滚动条还能跟 Entry 组件配合。

    下边例子我们演示如何使用垂直滚动条。为了在某个组件上安装垂直滚动条,你需要做两件事:

    ##用法

    1. 设置该组件的 yscrollbarcommand 选项为 Scrollbar 组件的 set() 方法;

    2. 设置 Scrollbar 组件的 command 选项为该组件的 yview() 方法。

    from tkinter import *

    root = Tk()

    sb = Scrollbar(root)
    sb.pack(side=RIGHT,fill=Y)

    lb = Listbox(root,yscrollcommand=sb.set)

    for i in range(1000):
    lb.insert(END,i)

    lb.pack(side = LEFT,fill=BOTH)

    sb.config(command=lb.yview)

    mainloop()

    在这里插入图片描述
           (解析:首先增加的这个Listbox,lb = Listbox(root,yscrollcommand=sb.set)要给Listbox这个组件加上滚动条,就一定要设置yscrollcommand或者xscrollcommand选项(一个是垂直滚动一个是水平滚动)这两个的值为Scrollbar实例化对象也就是sb的set方法
           接着用循环给组件Listbox加内容,加完后pick()出来,刚刚完成了第一个条件,要跟滚动条互通互联,那么这里还需要设置滚动条的一个command选项,sb.config(command=lb.yview),然后可以直接调用对象的config方法来设置他的值,需要注意的是,因为在这个时候,lb才产生,才pick出来,如果在pick()之前设置就会出问题,然后就是设置sb即滚动组件的command选项为Listbox组件的yview方法就好了,
           再来分析一下他的过程:这事实上就是一个互联互通的过程,当用户操作滚动条进行滚动的时候,滚动条首先响应用户的滚动操作,接下来,通过 yview() 方法(Listbox 的一个默认方法),事实上就是设置好怎么去显示垂直滚动对应的内容变化,内容会自动刷新,然后,如果是 Listbox 里面滚动(即用鼠标滚轮直接操作),它就会调用 sb.set() 方法,同时修改滚动条的位置。)

    ##参数

    Scrollbar(master=None, **options) (class)

    master – 父组件

    **options – 组件选项,下方表格详细列举了各个选项的具体含义和用法:

    选项 含义
    activebackground 1. 指定当鼠标在上方飘过的时候滑块和箭头的背景颜色
    2. 默认值由系统指定
    activerelief 1. 指定当鼠标在上方飘过的时候滑块的样式
    2. 默认值是 "raised"
    3. 可以选择 "flat","sunken","groove","ridge"
    background 1. 指定背景颜色
    2. 默认值由系统指定
    bg 跟 background 一样
    borderwidth 1. 指定边框宽度
    2. 默认值是 0
    bd 跟 borderwidth 一样
    command 1. 当滚动条更新时回调的函数
    2. 通常的是指定对应组件的 xview() 或 yview() 方法
    cursor 1. 指定当鼠标在上方飘过的时候的鼠标样式
    2. 默认值由系统指定
    elementborderwidth 1. 指定滚动条和箭头的边框宽度
    2. 默认值是 -1(表示使用 borderwidth 选项的值)
    highlightbackground 1. 指定当滚动条没有获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightcolor 1. 指定当滚动条获得焦点的时候高亮边框的颜色
    2. 默认值由系统指定
    highlightthickness 1. 指定高亮边框的宽度
    2. 默认值是 0(不带高亮边框)
    jump 1. 指定当用户拖拽滚动条时的行为
    2. 默认值是 False,滚动条的任何一丝变动都会即刻调用 command 选项指定的回调函数
    3. 设置为 True 则当用户松开鼠标才调用
    orient 1. 指定绘制 "horizontal"(垂直滚动条)还是 "vertical"(水平滚动条)
    2. 默认值是 VERTICAL
    relief 1. 指定边框样式
    2. 默认值是 "sunken"
    3. 可以选择 "flat","raised","groove","ridge"
    repeatdelay 1. 该选项指定鼠标左键点击滚动条凹槽的响应时间
    2. 默认值是 300(毫秒)
    repeatinterval 1. 该选项指定鼠标左键紧按滚动条凹槽时的响应间隔
    2. 默认值是 100(毫秒)
    takefocus 1. 指定使用 Tab 键可以将焦点移到该 Scrollbar 组件上
    2. 默认是开启的,可以将该选项设置为 False 避免焦点在此组件上
    troughcolor 1. 指定凹槽的颜色
    2. 默认值由系统指定
    width 1. 指定滚动条的宽度
    2. 默认值是 16 像素

    ##方法

    activate(element)
    — 显示 element 参数指定的元素的背景颜色和样式
    —element 参数可以设置为:“arrow1”(箭头1),“arrow2”(箭头2)或 “slider”(滑块)

    delta(deltax, deltay)
    — 给定一个鼠标移动的范围 deltax 和 deltay(像素为单位,deltax 表示水平移动量,deltay 表示垂直移动量),然后该方法返回一个浮点类型的值(范围 -1.0 ~ 1.0)
    — 这通常在鼠标绑定上使用,用于确定当用户拖拽鼠标时滑块的如何移动

    fraction(x, y)
    — 给定一个像素坐标 (x, y),该方法返回最接近给定坐标的滚动条位置(范围 0.0 ~ 1.0)

    get()
    — 返回当前滑块的位置 (a, b)
    — a 值表示当前滑块的顶端或左端的位置,b 值表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)

    identify(x, y)
    — 返回一个字符串表示指定位置下(如果有的话)的滚动条部件
    — 返回值可以是:“arrow1”(箭头1),“arrow2”(箭头2)、“slider”(滑块)或 “”(啥都没有)

    set(*args)
    — 设置当前滚动条的位置
    — 如果设置则需要两个参数 (first, last),first 表示当前滑块的顶端或左端的位置,last 表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)


    下一篇:Python ----(九)Tkinter窗口组件:Scale

    转载博客:https://blog.csdn.net/w15977858408/article/details/104165163

  • 相关阅读:
    computed的用法
    地址列表展开功能/默认选中功能
    简易编辑器
    用vue做todolist
    用vue做的购物车结算的功能
    如果数据返回没有那个字段,怎么加上去?
    vue中全局filter和局部filter怎么用?
    editorconfig
    eslint 配置
    react typescript 单元测试
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/14384882.html
Copyright © 2011-2022 走看看