Я хочу разместить, например, 20 текстовых полей на холсте. Поэтому моя иерархия виджета - это главное окно -> холст -> текстовые поля. Текстовые поля не могут быть помещены в холст, поэтому я хочу привязать к нему вертикальную полосу прокрутки. Вот то, что я пробовал:Невозможно сделать вертикальную работу прокрутки на холсте
from tkinter import *
root = Tk()
root_height = root.winfo_screenheight()
root_width = root.winfo_screenwidth()
root.geometry("%dx%d+0+0" % (root_width, root_height))
canvas = Canvas(root, height=root_height, width=root_width)
canvas.pack(fill=BOTH, expand=1)
scrollbar = Scrollbar(canvas)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.config(yscrollcommand=scrollbar.set)
textBoxes = []
for i in range(0, 20):
textBoxes.append(Text(canvas, height=1, width=20, bd=2))
y_offset = 15
for i in range(0, 20):
textBoxes[i].place(x=10, y=y_offset)
y_offset += 60
scrollbar.config(command=canvas.yview)
mainloop()
Так в принципе, я пытался сделать то, что я понял из учебников и других вопросов -
Установка виджета (холст)
yscrollcommand
обратные вызовы к set метод полосы прокрутки.Установить команду прокрутки в метод
yview
виджета (холст).
К сожалению, полоса прокрутки выглядит неприступной. Где я ошибаюсь и как я могу достичь желаемого поведения?
не могли бы вы помочь мне больше с измененным примером моего кода? – CuriousGuy