TkInter Scrolled Listbox class?

Vishal Chandratreya vpaijc at gmail.com
Tue Nov 5 13:28:38 EST 2024


   This is what I created ScrollableContainers for. Its usage deviates a bit
   from standard Tkinter practices in that you add widgets to the frame
   attribute of a ScrollableFrameTk instance. 

       [1]twitter.abaf4b19.webp
   [2]ScrollableContainers
   pypi.org

   For your use case, you could populate your list box and then put it inside
   that frame. I’ve not tested this scenario, so I’d appreciate feedback!
   Thanks. 

     On 4 Nov 2024, at 21:28, Ulrich Goebel via Python-list
     <python-list at python.org> wrote:

     Hi,
     I would like to build a class ScrolledListbox, which can be packed
     somewhere in ttk.Frames. What I did is to build not really a scrolled
     Listbox but a Frame containing a Listbox and a Scrollbar:
     class FrameScrolledListbox(ttk.Frame):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            #
            # build Listbox and Scrollbar
            self.Listbox = tk.Listbox(self)
            self.Scrollbar = ttk.Scrollbar(self)
            #
            # configure these two
            self.Listbox.config(yscrollcommand=self.Scrollbar.set)
            self.Scrollbar.config(command=self.Listbox.yview)
            #
            # pack them in Frame
            self.Listbox.pack(side=tk.LEFT, fill=tk.BOTH)
            self.Scrollbar.pack(side=tk.RIGHT, fill=tk.BOTH)
     That works, so instances of FrameScrolledListbox can be packed and the
     tk.Listbox itself is accessible via an attribute:
     frmScrolledListbox = FrameScrolledListbox(main)
     frmScrolledListbox.Listbox.config(...)
     But it would be a bit nicer to get a class like
     class ScrolledListbox(tk.Listbox):
        ...
     So it would be used that way:
     scrolledListbox = ScrolledListbox(main)
     scrolledListbox.config(...)
     Is that possible? The problem which I can't handle is to handle the
     Frame which seems to be needed to place the Scrollbar somewhere.
     Best regards
     Ulrich
     --
     Ulrich Goebel <ml at fam-goebel.de>
     --
     https://mail.python.org/mailman/listinfo/python-list

References

   Visible links
   1. https://pypi.org/project/ScrollableContainers/
   2. https://pypi.org/project/ScrollableContainers/


More information about the Python-list mailing list