2 вещи. Сначала свяжите все свои списки на экране вместе, а не по отдельности.
screen.bind_all("<MouseWheel>", scrolllist)
Во-вторых, добавьте смещение для движения при наведении, вот так.
listBoxes[num].yview("scroll", event.delta, "units")
Я также сжал ваши scrollLists
функция, поскольку она принимала неверное количество аргументов.
Полный код.
from tkinter import *
screen = Tk()
screen.title("EEPROM programmer")
screen.geometry("1050x620")
screen.maxsize(width = 1050, height = 620)
screen.minsize(width = 1050, height = 620)
listBoxes = {}
listNumber = 16
scrollbar = Scrollbar(screen)
scrollbar.place(x=25*17,y=25,height=100)
scrollPosition = 0
print(len(listBoxes))
def scrolllist(event):
global scrollPosition
scrollPosition += (((-event.delta)/120)*7)/75
if scrollPosition >= 0.75:
scrollPosition = 0.75
elif scrollPosition <= 0:
scrollPosition = 0
print(scrollPosition)
for num in range(listNumber):
listBoxes[num].yview("scroll", event.delta, "units")
listBoxes[num].yview("moveto", scrollPosition)
print()
for x in range(listNumber):
listBoxes[x] = Listbox(screen, font=("consolas", 12, "bold"), height=25, width=3, yscrollcommand=scrollbar.set)
listBoxes[x].place(x=25*x, y=25)
screen.bind_all("<MouseWheel>", scrolllist)
for y in range(100):
for x in range(listNumber):
listBoxes[x].insert(0, y)
def scrollLists(*args):
for num in range(listNumber):
listBoxes[num].yview(*args)
scrollbar.config(command = scrollLists)
screen.mainloop()