Tkinter 프레임에 수직 스크롤 가능 프레임 사용
프레임 높이가 초과되었습니다. 사용자 정의 VerticalScrolledFrame을 사용하여 이를 달성하는 방법은 다음과 같습니다.
# VerticalScrolledFrame allows for вертикальное прокрутка in a frame import tkinter as tk import tkinter.ttk as ttk class VerticalScrolledFrame(ttk.Frame): def __init__(self, parent, *args, **kw): ttk.Frame.__init__(self, parent, *args, **kw) # Components for scrolling vscrollbar = ttk.Scrollbar(self, orient=VERTICAL) vscrollbar.pack(fill=Y, side=RIGHT, expand=FALSE) self.canvas = tk.Canvas(self, bd=0, highlightthickness=0, yscrollcommand=vscrollbar.set) self.canvas.pack(side=LEFT, fill=BOTH, expand=TRUE) vscrollbar.config(command=self.canvas.yview) # Initialize view position self.canvas.xview_moveto(0) self.canvas.yview_moveto(0) # Scrollable area self.interior = interior = ttk.Frame(self.canvas) interior_id = self.canvas.create_window(0, 0, window=interior, anchor=NW) # Events to handle changes def _configure_interior(event): size = (interior.winfo_reqwidth(), interior.winfo_reqheight()) self.canvas.config(scrollregion="0 0 %s %s" % size) if interior.winfo_reqwidth() != self.canvas.winfo_width(): self.canvas.config(width=interior.winfo_reqwidth()) interior.bind('<<Configure>>', _configure_interior) def _configure_canvas(event): if interior.winfo_reqwidth() != self.canvas.winfo_width(): self.canvas.itemconfigure(interior_id, width=self.canvas.winfo_width()) self.canvas.bind('<<Configure>>', _configure_canvas)
이제 이 VerticalScrolledFrame을 프레임으로 사용하여 레이블을 추가하고 자동 스크롤을 활성화할 수 있습니다.
# Frame with scrolling frame = VerticalScrolledFrame(root) # Add labels for i in range(50): Label(frame.interior,text=i).grid(row=i,column=0) Label(frame.interior,text="my text"+str(i)).grid(row=i,column=1) Label(frame.interior,text="..........").grid(row=i,column=2)
위 내용은 Tkinter에서 수직 스크롤 프레임을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!