python scroll listbox 例子

python scroll listbox 例子_第1张图片
image.png

"a simple customizable scrolled listbox component"

from tkinter import *

class ScrolledList(Frame):
def init(self, options, parent=None):
Frame.init(self, parent)
self.pack(expand=YES, fill=BOTH) # make me expandable
self.makeWidgets(options)

def handleList(self, event):
    index = self.listbox.curselection()                # on list double-click
    label = self.listbox.get(index)                    # fetch selection text
    self.runCommand(label)                             # and call action here
                                                       # or get(ACTIVE)
def makeWidgets(self, options):
    sbar = Scrollbar(self)
    list = Listbox(self, relief=SUNKEN)
    sbar.config(command=list.yview)                    # xlink sbar and list
    list.config(yscrollcommand=sbar.set)               # move one moves other
    sbar.pack(side=RIGHT, fill=Y)                      # pack first=clip last
    list.pack(side=LEFT, expand=YES, fill=BOTH)        # list clipped first
    pos = 0
    for label in options:                              # add to listbox
        list.insert(pos, label)                        # or insert(END,label)
        pos += 1                                       # or enumerate(options)
   #list.config(selectmode=SINGLE, setgrid=1)          # select,resize modes
    list.bind('', self.handleList)           # set event handler
    self.listbox = list

def runCommand(self, selection):                       # redefine me lower
    print('You selected:', selection)

if name == 'main':
options = (('Lumberjack-%s' % x) for x in range(20)) # or map/lambda, [...]
ScrolledList(options).mainloop()

你可能感兴趣的:(python scroll listbox 例子)