精华内容
下载资源
问答
  • [tkinter]为列表框添加滚动条

    千次阅读 2019-09-24 02:06:08
    为了给列表框配备滚动条,看来很多别人的博客 终于解决了问题 ,现在我总结一下 from tkinter import * root = Tk() lb = Listbox(root) scr = Scrollbar(root) lb.config(yscrollcommand=scr.set) ...

    为了给列表框配备滚动条,看来很多别人的博客

    终于解决了问题 ,现在我总结一下

    from tkinter import *
    
    root = Tk()
    
    lb = Listbox(root)
    scr = Scrollbar(root)
    
    lb.config(yscrollcommand=scr.set)
    scr.config(command=lb.yview)
    
    for i in range(20):
        lb.insert(END, "第%s项" % i)
    
    lb.pack(side=LEFT, fill=Y)
    scr.pack(side=RIGHT, fill=Y)
    
    root.mainloop()

    效果图

    关键在标记红色的两句,为了让两个控件相互配合,两个控件都得设置

    lb.config(yscrollcommand=scr.set)

    列表框换“视角”后 更新的滚动条状态
    scr.config(command=lb.yview)

    滚动条拖动后 调整列表框“视角”

     

    PS:有一些博客只写了其中一条,,实际效果“很有毛病”,希望我以后不会再踩这个坑

    转载于:https://www.cnblogs.com/ansver/p/10584630.html

    展开全文
  • 列表框列表空滚动条自动下滑

    千次阅读 2018-05-30 11:43:00
    列表框增加信息后添加如下代码:SendMessage(m_ListBoxNotes.m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_BOTTOM,0),NULL);其中m_ListBoxNotes为控件控制型变量
    列表框增加信息后添加如下代码
    :SendMessage(m_ListBoxNotes.m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_BOTTOM,0),NULL);
    其中m_ListBoxNotes为控件控制型变量
    展开全文
  • 代码如下: from tkinter import * window = Tk() window.title("New England") yscroll = Scrollbar(window, orient=VERTICAL) ...yscroll.grid(row=0,column=2,rowspan=4,padx=(0,100),pady=5,sticky=NS) ...

    代码如下:

    from tkinter import *
    window = Tk()
    window.title("New England")
    yscroll = Scrollbar(window, orient=VERTICAL)
    yscroll.grid(row=0,column=2,rowspan=4,padx=(0,100),pady=5,sticky=NS)
    statesList = ["Connecticut","Maine","Masssachusetts","New Hampshired","Rhode ISsland", "Vermont"]
    conOFlstNE = StringVar()
    lstNE = Listbox(window,width=14,height=4,listvariable=conOFlstNE,yscrollcommand=yscroll.set)
    lstNE.grid(row=0,column=1,rowspan=4,padx=(100,0),pady=5,sticky=E)
    conOFlstNE.set(tuple(statesList))
    yscroll["command"] = lstNE.yview
    window.mainloop()

    效果如下:

     

    转载于:https://www.cnblogs.com/ncuhwxiong/p/6685054.html

    展开全文
  • Python之tkinter 列表框Listbox与滚动条Scrollbar

    千次阅读 多人点赞 2020-03-25 10:48:13
    文章目录建立列表框 建立列表框   列表框(Listbox)是一个显示一系列选项的Widget控件,用户可以进行单项或多项的选择 使用格式如下: Listbox(父对象, options, ...) ...

    列表框Listbox简介

      列表框(Listbox)是一个显示一系列选项的Widget控件,用户可以进行单项或多项的选择

    使用格式如下:

    Listbox(父对象, options, ...)
    

    参数:

    • 第一个参数:父对象,表示这个列表框将建立在哪一个窗口内
    • 第二个参数:options,参数如下
    参数 含义
    borderwidth 边界宽度
    默认是两个像素
    bd 边界宽度
    默认是两个像素
    background 背景色彩
    bg 背景色彩
    cursor 当鼠标光标移至列表框上时的形状
    foreground 前景色彩
    fg 前景色彩
    font 字形
    height 高,单位是字符,默认是10
    highlightcolor 当列表框取得焦点时的颜色
    highlightthinckness 当列表框取得焦点时的厚度
    listvariable 以变量方式处理选项内容
    relief 可由此控制列表框外框
    默认是SUNKEN
    selectbackground 被选取字符串的背景色彩
    selectmode 可以决定有多少个选项可以被选,以及鼠标拖拽如何影响选项
    width 宽,单位是字符宽
    xscrollcommand 在X轴使用滚动条
    yscrollcommand 在Y轴使用滚动条
    selectmode的参数
    参数 含义
    BROWSE 这是默认值,我们可以选择一个选项,如果选取一个选项同时拖拽鼠标,将造成选项最后的位置是被选取的项目位置
    SINGLE 只能选择一个选项,可以用单击方式选取,不可用拖拽方式更改所选的项目
    MULTIPLE 可以选择多个选项,单击项目可以切换是否选择该项目
    EXTENDED 单击第一个项目然后拖拽到最后一个项目,即可选择这个区间的一系列选项。
    单击可以选择第一个项目,此时若是按住Shift键并单击另一个项目,可以选取区间项目

    Listbox 的初步应用

    例子

    import tkinter
    
    root = tkinter.Tk()
    root.geometry("300x180")
    
    # 建立listbox1
    listbox1 = tkinter.Listbox(root)
    listbox1.pack(side=tkinter.LEFT, padx=5, pady=5)
    # 建立listbox2
    listbox2 = tkinter.Listbox(root, height=5, relief='raised')
    listbox2.pack(anchor=tkinter.N, side=tkinter.LEFT, padx=5, pady=5)
    
    root.mainloop()
    

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

    建立列表框项目 insert()

      可以使用insert()方法为列表框建立项目,这个方法的使用格式如下

    insert(index, elements)
    

    参数:

    • 第一个参数:父index,是项目插入的位置,如果是插在最后面可以使用END
    • 第二个参数:elements,插入的字符串

    例子

    import tkinter
    
    root = tkinter.Tk()
    
    # 建立listbox1
    listbox1 = tkinter.Listbox(root)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    listbox1.insert(tkinter.END, 'abc')
    listbox1.insert(tkinter.END, '123')
    listbox1.insert(tkinter.END, '!$#')
    
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
    其实也可以这样

    listbox1.insert(tkinter.END, 'abc', '123', '!$#')
    

    运行结果也是一样的

    如果有很多的项目需要插入,我们可以使用循环的方式来进行

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
    例子:重新设计程序,使列表框可以多选

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.MULTIPLE)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
    例子:重新设计,单击一个项目,按住Shift可以选择一个区间内的项目

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
    前面是单击并拖拽,后面是使用Shift键选择一个区间内的项目

    使用insert(ACTIVE, elements),表示是在目前选项前面加入一个项目,如果尚未选择选项则此ACTIVE是0

    例子:使用ACTIVE

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    listbox1.insert(tkinter.ACTIVE, '豆皮', '牛肉面', '汤圆')
    root.mainloop()
    

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

    显示已经在最上面了,也就是一次性在最上面插入了三个项目

    Listbox的基本操作

    下面是一些常用的Listbox 控件操作的方法

    操作方法 含义
    size() 传回列表项目的数量
    selection_set() 选取特定索引项
    delete() 删除特定索引项
    get() 传回指定索引项
    curselection() 传回选取项目的索引
    selection_include() 检查指定索引是否被选取
    列出列表框的选项数量 size()

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    print('数量是:', listbox1.size())
    root.mainloop()
    

    运行结果:

    数量是: 12
    
    选取特定索引项 selection_set()

      如果selection_set() 方法内含一个参数,表示选取这个索引项,这个功能常被用于在建立Listbox 后,设定初次选择的项目,通俗易懂的说,就是一进去默认选的是哪一个

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    # 这里设置默认选定的索引项
    listbox1.select_set(1)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
      如果设置两个索引值,就表示选取区间选项,第一个参数是起始索引项,第二个参数是区间的结束索引项

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    # 这里设置默认选定的索引项
    listbox1.select_set(1, 3)
    root.mainloop()
    

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

    删除特定索引项

      如果delete() 方法内含一个参数,表示删除这个索引项

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    # 这里设置删除选定的索引项
    listbox1.delete(0)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
      可以很自然的看到“热干面”选项已经不见了

      如果delete() 有两个参数是,表示选取区间选项,第一个参数是区间的起始索引项,第二个参数是区间的结束索引项

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    # 这里设置删除选定的索引项
    listbox1.delete(0, 1)
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
      可以看到“热干面、担担面”两个选项已经删除了

    传回指定的索引项 get()

      如果get() 方法内含一个参数,表示传回这个索引项的元素内容

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    print(listbox1.get(1))
    root.mainloop()
    

    运行结果:

    担担面
    

      如果在get() 方法内有两个参数,则表示传回区间选项,第一个参数是区间的起始索引项,第二个参数是区间的结束索引项,传回的值用元组方式传回

    例子

    import tkinter
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    print(listbox1.get(1, 3))
    root.mainloop()
    

    运行结果:

    ('担担面', '炸酱面', '面窝')
    
    传回所选取项目的索引 curselection()

      注意!注意!是索引,不是索引项

    例子

    import tkinter
    
    def show():
        index = listbox1.curselection()
        print(index)
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    button = tkinter.Button(root, text='print', command=show)
    button.pack()
    root.mainloop()
    

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

    我们可以结合get() 方法使用

    例子

    def show():
        index = listbox1.curselection()
        for i in index:
            print(listbox1.get(i))
    

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

    检查指定索引项是否被选取 selection_includes()

      如果指定索引项被选取会传回True,否则传回False

    例子

    import tkinter
    
    def show():
        # 检查第二个选项有无被选取
        print(listbox1.select_includes(1))
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆', '混沌', '糊汤粉', '饺子', '豆皮', '牛肉面', '汤圆']
    # 建立listbox1
    listbox1 = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    listbox1.pack(padx=5, pady=5)
    
    # 插入的位置与信息
    for food in foods:
        listbox1.insert(tkinter.END, food)
    
    button = tkinter.Button(root, text='print', command=show)
    button.pack()
    root.mainloop()
    

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

    Listbox与事件绑定

    虚拟绑定应用于单选

      当Listbox执行选取操作时会产生<<ListboxSelection>>虚拟事件,可以由此设置事件处理程序

    例子

    import tkinter
    
    def show(event):
        # 取得事件对象object
        object = event.widget
        # 取得所选的项目索引
        index = object.curselection()
        # 由索引取得所选的项目,关联到label中
        var.set(object.get(index))
    
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆']
    
    # 显示区
    var = tkinter.StringVar()
    label = tkinter.Label(root, textvariable=var)
    label.pack(pady=5)
    
    # 列表框
    lb = tkinter.Listbox(root)
    for i in foods:
        lb.insert(tkinter.END, i)
    lb.bind("<<ListboxSelect>>", show)
    lb.pack(pady=5)
    
    root.mainloop()
    

    运行结果:
    在这里插入图片描述
      单击Listbox中选项时会产生虚拟的<<ListboxSelection>>事件,此时可以触发itemChanged()方法处理此事件

    其实可以省略第四行,直接使用原先的Listbox对象也可以

    例子

    def show(event):
        # 取得所选的项目索引
        index = lb.curselection()
        # 由索引取得所选的项目,关联到label中
        var.set(lb.get(index))
    

    运行结果是一样的

    或者我们不使用虚拟绑定,直接简单粗鲁的使用单击选项,也行

    例子

    lb.bind("<Button-1>", show)
    

    运行结果是一样的!

    注意:这种方式pycharm会报错,但是依旧可以运行!

    虚拟绑定应用于多选

    例子

    import tkinter
    
    def show(event):
        object = event.widget
        indexs = object.curselection()
        for index in indexs:
            print(object.get(index))
        print('------------')
    
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆']
    
    # 列表框
    lb = tkinter.Listbox(root, selectmode=tkinter.EXTENDED)
    for i in foods:
        lb.insert(tkinter.END, i)
    
    
    lb.bind("<<ListboxSelect>>", show)
    lb.pack(pady=5)
    
    root.mainloop()
    

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

    活用加入和删除项目

    例子

    import tkinter
    
    def add():
        varAdd = entry.get()
        if (len(varAdd.strip())) == 0:
            return
        listbox.insert(tkinter.END, varAdd)
        entry.delete(0, tkinter.END)
    
    def delete():
        index = listbox.curselection()
        if len(index) == 0:
            return
        listbox.delete(index)
    
    
    root = tkinter.Tk()
    # 输入框
    entry = tkinter.Entry(root)
    entry.grid(row=0, column=0, padx=5, pady=5)
    
    # 增加按钮
    buttonAdd = tkinter.Button(root, text='增加', width=10, command=add)
    buttonAdd.grid(row=0, column=1, padx=5, pady=5)
    
    # 列表显示框
    listbox = tkinter.Listbox(root)
    listbox.grid(row=1, column=0, padx=5, pady=5)
    
    # 删除按钮
    buttonDelete = tkinter.Button(root, text='删除', width=10, command=delete)
    buttonDelete.grid(row=1, column=1, padx=5, pady=5, sticky=tkinter.N)
    
    root.mainloop()
    

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

    Listbox 项目的排序

    例子

    import tkinter
    
    def show():
        # 获取复选框是否勾选的值,如果勾选,值为True
        if var.get():
            # 定义排序的变量
            rebBool = True
        else:
            rebBool = False
        # 把我们列表框的几个值获取并转换成列表,方便排序
        listTem = list(listbox.get(0, tkinter.END))
        # 排序
        sortedList = sorted(listTem, reverse=rebBool)
        # 删除之前存在的列表框的值
        listbox.delete(0, tkinter.END)
        # 重新插入我们排序好的列表框的值
        for i in sortedList:
            listbox.insert(tkinter.END, i)
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆']
    listbox = tkinter.Listbox(root)
    for food in foods:
        listbox.insert(tkinter.END, food)
    listbox.pack(padx=10, pady=5)
    
    # 创建排序按钮
    button = tkinter.Button(root, text='排序', command=show)
    button.pack(side=tkinter.LEFT, padx=10, pady=5)
    
    var = tkinter.BooleanVar()
    cheakbutton = tkinter.Checkbutton(root, text='从大到小排序', variable=var)
    cheakbutton.pack(side=tkinter.LEFT)
    
    root.mainloop()
    

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

    拖拽 Listbox 中的项目

    例子

    import tkinter
    
    
    # 处理单击选项
    def show(event):
        # nearest可以传回最接近y坐标在Listbox的索引
        # 传回目前选项的索引
        listbox.index = listbox.nearest(event.y)
    
    
    # 处理拖拽选项
    def showInfo(event):
        # 获取目前选项的新索引
        newIndex = listbox.nearest(event.y)
        # 判断,如果向上拖拽
        if newIndex < listbox.index:
            # 获取新位置的内容
            x = listbox.get(newIndex)
            # 删除新内容
            listbox.delete(newIndex)
            # 将新内容插入,相当于插入我们移动后的位置
            listbox.insert(newIndex + 1, x)
            # 把需要移动的索引值变成我们所希望的索引,达到了移动的目的
            listbox.index = newIndex
        elif newIndex > listbox.index:
            # 获取新位置的内容
            x = listbox.get(newIndex)
            # 删除新内容
            listbox.delete(newIndex)
            # 将新内容插入,相当于插入我们移动后的位置
            listbox.insert(newIndex - 1, x)
            # 把需要移动的索引值变成我们所希望的索引,达到了移动的目的
            listbox.index = newIndex
    
    
    
    root = tkinter.Tk()
    foods = ['热干面', '担担面', '炸酱面', '面窝', '油条', '豆浆']
    listbox = tkinter.Listbox(root)
    for food in foods:
        listbox.insert(tkinter.END, food)
        listbox.bind('<Button-1>', show)
        listbox.bind('<B1-Motion>', showInfo)
    listbox.pack(padx=10, pady=5)
    
    
    root.mainloop()
    

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

    程序中用到的方法

    nearest(event.y)
    

    上述代码行,可以传回最接近y坐标在Listbox中的索引。当有单击操作时会触发getIndex()方法,第4行可以传回目前选项的索引,在拖拽过程中会触发gragJob()方法,在第7行可以传回新选项的索引,因为在拖拽过程中,这个方法会不断的被触发,所以至于被触发多少次视移动速度而定

    假如移动担担面,它的索引是1, 咱们向下拖拽,整个流程如下

    • 新索引位置为2
    • 获得索引内容 ‘面窝’,参照第27行
    • 删除新内容 ‘面窝’,参照第29行
    • 将 ‘面窝’ 内容插入在索引1的位置,相当于插入到我们移动前的位置,参照第31行
    • 这个时候把新的索引位置传给 ‘担担面’ ,根据索引来变换位置,变成了2,这样就达到了移动的目的了,参照第33行

    滚动条的设计

      在默认环境中Listbox 是没有滚动条的,但是如果选项太多,将造成部分选项无法显示,可以将滚动条Scrollbar控件加入Listbox中

    注:Scrollbar控件除了可以应用在Listbox上,也可以应用在Text和Canvas上

    使用格式如下:

    Scrollbar(父对象, options, ...)
    

    参数:

    • 第一个参数:父对象,表示这个滚动条将建立在哪一个窗口内
    • 第二个参数:options,参数如下
    参数 含义
    activebackground 当光标经过滚动条时,滚动条和方向箭头的颜色
    bg 或 background 当光标没有经过滚动条时,滚动条和方向箭头的颜色
    bd 或 borderwidth 边界宽度
    默认是两个像素
    command 滚动条移动时所触发的方法
    cursor 当鼠标光标在滚动条上时的形状
    highlightbackground 当滚动条没有获得焦点时的颜色
    highlightcolor 当滚动条取得焦点时的颜色
    highlightthinckness 当取得焦点时的厚度
    默认是1
    jump 每次短距离的拖拽滚动条时都会触发command的方法
    如果设为1,则只有放开鼠标按键时,才会触发command的方法
    默认是0
    orient 可设置HORIZONTAL/VERTICAL,分别是水平轴/垂直轴
    repeatdelay 可以设置按住滚动条移动的停滞时间
    单位是ms
    默认是300ms
    takefocus 正常可以用Tab键的方式切换滚动条成为焦点
    如果设置为0,则取消此设置
    troughcolor 滚动条槽的颜色
    width 宽,单位是字符宽

    例子

    import tkinter
    
    root = tkinter.Tk()
    
    sc = tkinter.Scrollbar(root)
    sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)
    
    # 列表动,滚动条跟着动
    lb = tkinter.Listbox(root, yscrollcommand=sc.set)
    for i in range(50):
        lb.insert(tkinter.END, "列表 " + str(i))
    lb.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=True)
    # 滚动条动,列表跟着动
    sc.config(command=lb.yview)
    
    root.mainloop()
    

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

    谢谢观看,笔者会持续更新,如有错误或者建议,请私信我

    展开全文
  • 列表框是CListBox类的对象,组合框是CComboBox的对象,滚动条是 CScrollBar 类的对象3、。 1、组合框 组合框(Combo Box)新建后可以修改里面的内容,需要把属性中的Type项改为Drop List即不能修改。 组合框...
  • 下拉列表框滚动条

    千次阅读 2017-10-29 15:07:51
    package hello; import java.awt.*; import javax.swing.*; public class Hello extends JFrame { JPanel mb1,mb2; JLabel bq1,bq2; JComboBox xlk;... //列表,若没有JScrollPane,则窗口不会滚动
  • bootstrap列表添加滚动条

    万次阅读 2017-05-20 23:00:54
    这时我们需要添加一个滚动条。 初始状态如图: 代码如下: 免费域名注册 免费 Window 空间托管 图像的数量 24*7 支持 每年更新成本 免费域名注册 免费 ...
  • 列表框滚动条的设置

    千次阅读 2012-10-17 16:28:14
    对List Box上滚动条响应函数的设置 ,因为滚动条是List Box上信息变多而出现的,要想调用类表框的响应函数,则  窗口中 找到相应的响应函数!
  • JAVA进阶5.10——下拉列表框滚动条

    千次阅读 2016-09-26 13:37:31
    // 2号面板添加标签和滚动列表,这里不是添加列表,是添加滚动模式的列表。 mb2.add(label2); mb2.add(gunDong); // 主窗口添加两个面板。 this.add(mb1); this.add(mb2); // 设置主窗口的标题/...
  • 列表控件CListBox添加水平滚动条

    千次阅读 2013-02-20 17:47:56
    列表控件CListBox添加水平滚动条 Win32的标准控件之中,列表控件(ListBox)并没有和列表视图(ListView)一样提供水平滚动条,所以如果列表项的长度超过列表的宽度,超出的部分将无法显示。可使用SDK来解决这一...
  • 完全搞定iframe(框架)滚动条!(一) 说明:1、本文参考了网络上大量资料,本人此深表感谢!2、本文假设读者,有一定的HTML、CSS、JS基础。3、本文讨论的目标是,通过A页面
  • 组合 ComboBox  1 组合的样式  1.1 简单组合 CBS_SIMPLE  1.2 下拉式组合 CBS_... 1.3 下拉列表式组合 CBS_DROPDOWNLIST  只能从下拉列表中选择  2 组合的使用  2.1 组合的创建  窗口类名称是
  • 带搜索带滚动条的下拉列表框 1、先复制一个圆角文本框,讲文本框属性设置只读 2、框内加入向上 向下的 三角形(一开始先别叠加到一块,后面需要设置这两个形状的点击事件用户控制 选项区隐藏显示) 3、...
  • 给datatable添加滚动条

    千次阅读 2018-09-17 20:04:22
    给datatable添加滚动条,如下图红部分: 给table添加样式 style="white-space: nowrap;"  如下: &lt;table id="personRosterSearch_table" class="ui-table ui-table-...
  • ListBox 添加横向滚动条

    千次阅读 2012-10-15 08:42:27
    Delphi的TListBox组件会自动添加一个垂直滚动条,即当列表框的高度容纳不下所有的列表条目时,垂直滚动条就自动显示。但是,当条目的宽度大于列表框的宽度时,水平滚动条不会自动显示。当然, 可以在列表框中加如水平...
  • 利用CListBox::SetHorizontalExtent()成员可实现该功能。网上可行的方法主要是添加一个...1. 首先建立一个对话框CMyDlg的应用程序,添加一个列表框、三个按钮(添加、编辑、删除),列表框右键属性-》Horizon...
  • 为select选择增加滚动条

    万次阅读 2016-10-18 11:02:41
    当下拉菜单选项比较多的时候,select下拉列表在IE中默认是30条选项,firefox默认是20条, 超过自动出现滚动条。效果如下图:
  •  mui框架扩展了pipcker组件,可用于弹出选择器,各平台上都有统一表现.poppicker和dtpicker是对picker的具体实现。*poppicker组件依赖mui.picker.js/.css mui.poppicker.js/.css请务必mui.js/css后中引用,也可...
  • 提供用户调查几面的时候,如果选项比较多,那么就会用到:下拉框组件(JComboBox)列表框组件(JList)滚动窗格组件(JScrollPane)介绍三个组件:下拉框组件(JComboBox):点击箭头可以显示其他信息列表框组件...
  • 滚动条控件程序的核心是初始化阶段注意设置范围,初始化位置,要将信息传递到编辑则需要编写相应的显示函数这个函数需要获取位置。 写静态控件的程序NOTIFY风格使得静态控件可以响应消息 可以通过MAX_PATH获取...
  • EasyUi 下拉列表设置滚动条

    千次阅读 2019-05-31 15:55:36
    js中 $('#tag').combobox({ url: '/DataAction.do?method=geTag', valueField:'CODEVALUE', textField:'CODENAME', panelHeight:'250' , //设置panelHeight为固定值时会出现滚动条,也可设置成 ...
  • MFC中列表控件中控制滚动条

    千次阅读 2018-08-13 13:50:31
    列表框增加信息后添加如下代码 :SendMessage(m_ListBoxNotes.m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_BOTTOM,0),NULL); 其中m_ListBoxNotes为控件控制型变量  滚动条消息通知码nSBCode:  SB_BOTTOM/SB_RIGHT:滚动...
  • jsp中为表格添加水平滚动条

    千次阅读 2016-08-12 09:35:09
    bootsrtap自适应是针对当浏览器不占满整个屏幕,而是一半的时候才会出现横向的滚动条 而当我们将浏览器最大化的时候,如果列数增多了呢?会出现什么效果 答案就是会出现挤压的效果,横向并不会出现滚动条 查看...
  • jsp 页面添加取消滚动条

    万次阅读 2017-06-23 14:39:26
    去掉水平滚动条: 去掉竖直滚动条: 隐藏横向滚动条,显示纵向滚动条: 全部隐藏 或者是 如果是框架页,利用上面的方法仍不能去除可考虑以下办法: 被包含页面加入 ...
  • word中添加滚动条的文本框,运用开发工具菜单: 步骤简介: 1、插入文本框 2、文本框上点右键选属性 3、设置如下参数 MultiLine = True(多行显示,不设此项回车不按行) ScrollBars = 3 - fmScrollBarsBoth...
  • 一个网页中嵌入了一个 iframe,iframe 中嵌入一张报表,当报表大小超过 iframe 大小时,iframe 中就会出现滚动条; 当 iframe 超过浏览器大小时,浏览器便会出现滚动条,就是下图这种效果。 2.实现原理 如果...
  • vue项目中,使用了ant-vue Ui组件库 需求是在列表展示的时,需要modal框里遍历未知的多信息 如果信息过多的话就很很长,效果如下:
  • VC ListBox添加水平滚动条

    千次阅读 2011-09-17 08:25:52
    但缺省的列表框水平滚动条不够智能——这里智能的含义是:应该出现的时候 出现,不应该出现的时候消失,而且应能自动调节自己的大小。本文通过实例 说明了存在的问题和解决办法。 ---
  • grid中列太多显示不全 困扰了我好久好久, 一直想添加滚动条,一直也不会,搞了半天才知道viewCofig属性的配置是关键。 var grid = new Ext.grid.EditorGridPanel({  stripeRows : true,//斑马线  loadMask...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,709
精华内容 20,683
关键字:

如何在列表框里添加滚动条