Я знаю, что это не первый раз, когда задают такой вопрос, но даже после примерно 2 часов работы в Интернете я не могу заставить его работать:
Так что я пытаюсьсоздайте Tkinter-Frame, который содержит несколько кнопок (в качестве примера я взял 30).Но поскольку у меня недостаточно места в моей программе, мне нужно добавить рядом с ней полосу прокрутки, чтобы можно было прокручивать кнопки.
Проблемы, которые у меня были, это внутренняя "движущаяся часть"панели была такой же большой, как и вся полоса прокрутки, и ее нельзя было перемещать, что я вроде решил с помощью scollregion=(0,0,1000,1000)
, но даже тогда перемещение панели никак не влияло на холст.
Вот соответствующий код, который я извлек из моей программы:
import Tkinter as tk
root = tk.Tk()
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=50)
root.columnconfigure(1, weight=1)
root.minsize(300,400)
root.maxsize(300,400)
#Buttons
buttonFrame = tk.Canvas(root, bg='#bbb')
buttonFrame.grid(row=0, column=0, sticky=tk.N+tk.E+tk.S+tk.W)
buttonFrame.columnconfigure(0, weight=1)
scroll = tk.Scrollbar(root, command=buttonFrame.yview)
scroll.grid(row=0, column=1, sticky=tk.N+tk.E+tk.S+tk.W)
buttonFrame.configure(yscrollcommand=scroll.set)
for i in range(30):
tk.Button(buttonFrame, text=str(i+1)).grid(row=i, column=0, sticky=tk.N+tk.E+tk.S+tk.W)
root.mainloop()
Как вы (надеюсь) видите, слайдер даже не может быть перемещен и ничего не меняет на холсте, даже если я нажимаюa scrollregion=(bla)
где-то там.
2 Вопросы: a.) Что мне нужно добавить (или удалить), чтобы я мог прокрутить список кнопок b.) Исправлено ли из a.все еще работает, когда я делаю полосу прокрутки дочерним элементом buttonFrame
вместо root
?