Python Tkinter Tutorial | How to Create a Scrollable Frame

preview_player
Показать описание
In this video, we're going to create a scrollable frame in Python Tkinter!

Tkinter Project Tutorials

CodeReveal

TIMESTAMPS

00:00 Intro
00:04 Starter Code
00:09 Adding Frame
00:52 Adding Canvas
01:14 Adding Scrollbar
01:35 Adding 2nd Frame
01:51 Make 2nd Frame's Width = Canvas Width
02:23 Update Scrollbar
02:50 Update Canvas Scrollregion
03:11 Use Scrollable Frame
03:37 Outro
Рекомендации по теме
Комментарии
Автор

FINAL CODE

from tkinter import *

class ScrollableFrame(Frame):
def __init__(self, parent):
super().__init__(parent, bg="red")

#Create & Display Canvas/Scrollbar
self.canvas = Canvas(self, bg="yellow")
self.canvas.pack(side=LEFT, fill=BOTH, expand=1)

self.scrollbar = Scrollbar(self, orient="vertical", command=self.canvas.yview)
self.scrollbar.pack(side=RIGHT, fill=Y)

self.scrolling_frame = Frame(self.canvas, bg="green")

#Connects Canvas and Scrollbar


#Add Scrolling Frame to Canvas
self.canvas_window = self.canvas.create_window((0, 0), window=self.scrolling_frame, anchor="nw")

self.scrolling_frame.bind("<Configure>", self.update_scrollregion)
self.canvas.bind("<Configure>", self.resize_frame)

def update_scrollregion(self, event=None):
#Update Scrollregion when Scrolling Frame size changes


def resize_frame(self, event=None):
#Makes Scrolling Frame match Canvas width
canvas_width = event.width

self.canvas.itemconfig(self.canvas_window, width=canvas_width)

if ___name___ == "__main__":
root = Tk()
root.geometry("500x500")

scr_fr = ScrollableFrame(root)
scr_fr.pack(fill=BOTH, expand=1)

for i in range(30):
lbl = Label(scr_fr.scrolling_frame, text=f"Label {i}")
lbl.pack(fill=X)

root.mainloop()

CodeQuest
welcome to shbcf.ru