python - Tkinter listbox that scrolls with arrow keys -



python - Tkinter listbox that scrolls with arrow keys -

i'm trying listbox have first object highlighted (which happens self.e1.select_set(0). trying scroll through listbox highlighting next item downwards when hitting downwards arrow, or select next item hitting arrow. thought binding no luck. ideas?

def body(self, master): self.e1 = tk.listbox(master, selectmode=tk.single, height = 3, exportselection=0) self.e1.insert(tk.end, "1") self.e1.insert(tk.end, "2") self.e1.grid(row=0, column=1) self.e1.select_set(0) self.e1.bind("<down>", self.onentrydown) self.e1.bind("<up>", self.onentryup) def onentrydown(self, event): self.e1.yview_scroll(1, "units") def onentryup(self, event): self.e1.yview_scroll(-1, "units")

thanks!

as name says, yview_scroll changes view, not selection.

like select first object select_set(0), can utilize select_set select other objects. maintain reference object selected , utilize select next or previous object upon button press. create sure selection not go below 0 or on size of listbox.

code example:

def body(self, master): self.e1 = tk.listbox(master, selectmode=tk.single, height = 3, exportselection=0) self.e1.insert(tk.end, "1") self.e1.insert(tk.end, "2") self.e1.grid(row=0, column=1) self.selection = 0 self.e1.select_set(self.selection) self.e1.bind("<down>", self.onentrydown) self.e1.bind("<up>", self.onentryup) def onentrydown(self, event): if self.selection < self.e1.size()-1: self.e1.select_clear(self.selection) self.selection += 1 self.e1.select_set(self.selection) def onentryup(self, event): if self.selection > 0: self.e1.select_clear(self.selection) self.selection -= 1 self.e1.select_set(self.selection)

python tkinter listbox vertical-scrolling

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -