Re: TkInter Scrolled Listbox class?

Liste des GroupesRevenir à cl python 
Sujet : Re: TkInter Scrolled Listbox class?
De : cs (at) *nospam* cskk.id.au (Cameron Simpson)
Groupes : comp.lang.python
Date : 04. Nov 2024, 23:21:28
Autres entêtes
Message-ID : <mailman.77.1730755300.4695.python-list@python.org>
References : 1 2
User-Agent : Mutt/2.2.13 (2024-03-09)
On 04Nov2024 16:32, Ulrich Goebel <ml@fam-goebel.de> wrote:
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:
That's what I would build too.

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)
[...]
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(...)
Probably you want to proxy various methods to the enclosed widgets.  Possibly you want to do that with parameters in `__init__` also.
Example:
     class FrameScrolledListbox(ttk.Frame):
         def __init__(self, *frame_args, *, height=None, jump=None, **frame_kw):
             super().__init__(*frame_args, **frame_kw)
             self.Listbox = tk.Listbox(self, height=height)
             self.Scrollbar = ttk.Scrollbar(self, jump=jump)
             ........
         def config(self, *a, **kw):
             return self.Listbox.config(*a, **kw)
and so forth for the various listbox methods you want to proxy to the listbox itself. You could pass scroll specific methods to the scrollbar as well.
Cheers,
Cameron Simpson <cs@cskk.id.au>

Date Sujet#  Auteur
4 Nov 24 o Re: TkInter Scrolled Listbox class?1Cameron Simpson

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal