1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
#
try:
import Tkinter as Tk
except:
import tkinter as Tk
def yview(*args):
# Sous Python 2 : apply(liste.yview, args)
if args[0] == 'scroll':
l1.yview_scroll(args[1], args[2])
l2.yview_scroll(args[1], args[2])
elif args[0] == 'moveto':
l1.yview_moveto(args[1])
l2.yview_moveto(args[1])
elif args[0] == 'sync':
tosync = l1
if args[1] == l1:
tosync = l2
tosync.yview_moveto(args[1].yview()[0])
root = Tk.Tk()
root.title('tk : test Scrollbar')
s1 = Tk.Scrollbar(root, orient=Tk.VERTICAL)
s2 = Tk.Scrollbar(root, orient=Tk.VERTICAL)
l1 = Tk.Listbox(root, yscrollcommand=s1.set)
l2 = Tk.Listbox(root, yscrollcommand=s2.set)
for e in range(1000):
l1.insert(Tk.END, e)
l2.insert(Tk.END, e)
l1.pack(side=Tk.LEFT, fill=Tk.BOTH, expand=1)
s1.config(command=yview)
s1.pack(side=Tk.LEFT, fill=Tk.Y)
l2.pack(side=Tk.LEFT, fill=Tk.BOTH, expand=1)
s2.config(command=yview)
s2.pack(side=Tk.LEFT, fill=Tk.Y)
#listbox.bind('<Button-4>', lambda event: event.widget.yview_scroll(-1, UNITS))
#listbox.bind('<Button-5>', lambda event: event.widget.yview_scroll(1, UNITS))
root.bind('<Button-4>', lambda event: yview('sync', event.widget))
root.bind('<Button-5>', lambda event: yview('sync', event.widget))
root.bind('<Prior>', lambda event: yview('scroll', -1, 'pages'))
root.bind('<Next>', lambda event: yview('scroll', 1, 'pages'))
root.bind('<Up>', lambda event: yview('scroll', -1, 'units'))
root.bind('<Down>', lambda event: yview('scroll', 1, 'units'))
root.mainloop() |
Partager