Jan-06-2020, 11:44 AM
Hi berckut72
Here something to experiment with. Try to forget globals:
Here something to experiment with. Try to forget globals:
import tkinter as tk root = tk.Tk() root.geometry('600x800+10+10') root.resizable(width=False, height=False) def build_canvas_setup(canvas): xorg_txt = 30 yorg_txt = 10 xorg_entry = 100 yorg_entry = 40 ystep = 50 entry_vars = list() for index in range(8): # Place text canvas object tx_slice = 'txt{}'.format(index+1) txtn = tx_slice*7 canvas.create_text(xorg_txt, yorg_txt+ystep*index, text=txtn, anchor=tk.NW, tags='all') # Place entry widget as canvas object entry_var = tk.StringVar() entry = tk.Entry(canvas, bd = 0, justify = tk.CENTER, bg = '#7F7F7F', fg='white', textvariable=entry_var, width = 6) canvas.create_window( xorg_entry, yorg_entry+ystep*index, window=entry, tags='all') entry_vars.append(entry_var) return entry_vars def button4_event(event): # Linux wheel event print('Button-4') move_canvas_objects('up') def button5_event(event): # Linux wheel event print('Button-5') move_canvas_objects('down') def mouse_wheel_events(event): # Window wheel events if event.delta == -120: direction = 'down' elif event.delta == 120: direction = 'up' else: return move_canvas_objects(direction) def move_canvas_objects(direction): if direction == 'up': canvas1.move('all', 0, -1) elif direction == 'down': canvas1.move('all', 0, 1) canvas1 = tk.Canvas(root, width=600, height=750, highlightthickness=0) canvas1.pack() entry_vars = build_canvas_setup(canvas1) for index, entry_var in enumerate(entry_vars): entry_value = 100 + index entry_var.set(entry_value) # For Linux only canvas1.bind('<Button-4>', button4_event) canvas1.bind('<Button-5>', button5_event) # For Windows only canvas1.bind('<MouseWheel>', mouse_wheel_events) root.mainloop()Greetings from wuf :-)