Этот метод я использую для добавления полосы прокрутки в Tkinter
- Создание холста
canvas = tk.Canvas(app)
canvas.pack(side="left", fill="both", expand=True)
Затем создайте рамку, чтобы поместить ее в холст *
# Create a frame to put in the canvas
main_frame = tk.Frame(canvas)
canvas.create_window((4,4), window=main_frame, anchor="nw") # This code fits the frame into the canvas window
* Вам не нужно создавать рамку, если вы хотите, вы можете просто поместить виджеты прямо в холст.
Наконец, создайте полосу прокрутки
# Scrollbar
def onFrameConfigure(canvas):
# Reset the scroll region to encompass the inner frame
canvas.configure(scrollregion=canvas.bbox("all"))
scrollbar = tk.Scrollbar(app, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=scrollbar.set)
scrollbar.pack(side="right", fill="y") # Displays scrollbar
main_frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
Теперь все, что вы положите в main_frame
, будет соответствовать полосе прокрутки.