Tkinter를 활용하여 프레임에 스크롤바 기능 추가
Tkinter에서 스크롤 가능한 프레임을 만들려면 스크롤바를 통합해야 합니다. 프레임 높이를 초과하는 콘텐츠. 통찰력 있는 토론을 바탕으로 프레임을 구성하고 그 안에 캔버스를 포함하며 스크롤 막대를 프레임에 연결하면 원하는 기능을 얻을 수 있다는 것이 제안되었습니다. 그런 다음 추가 프레임을 수용하기 위해 캔버스 내에 창 개체가 구상되었습니다.
다음 Python 코드를 사용하면 수직으로 스크롤 가능한 프레임을 효과적으로 구현할 수 있습니다.
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) vscrollbar = ttk.Scrollbar(self, orient=VERTICAL) vscrollbar.pack(fill=Y, side=RIGHT, expand=FALSE) canvas = tk.Canvas(self, bd=0, highlightthickness=0, yscrollcommand=vscrollbar.set) canvas.pack(side=LEFT, fill=BOTH, expand=TRUE) vscrollbar.config(command=canvas.yview) canvas.xview_moveto(0) canvas.yview_moveto(0) self.interior = interior = ttk.Frame(canvas) interior_id = canvas.create_window(0, 0, window=interior, anchor=NW) def _configure_interior(event): size = (interior.winfo_reqwidth(), interior.winfo_reqheight()) canvas.config(scrollregion="0 0 %s %s" % size) if interior.winfo_reqwidth() != canvas.winfo_width(): canvas.config(width=interior.winfo_reqwidth()) interior.bind('<Configure>', _configure_interior) def _configure_canvas(event): if interior.winfo_reqwidth() != canvas.winfo_width(): canvas.itemconfigure(interior_id, width=canvas.winfo_width()) canvas.bind('<Configure>', _configure_canvas) root = tk.Tk() frame = VerticalScrolledFrame(root) frame.pack() for i in range(10): ttk.Button(frame.interior, text="Button " + str(i)).pack() root.mainloop()
쿼리 처리 :
위 내용은 캔버스와 스크롤바를 사용하여 Tkinter에서 스크롤 가능한 프레임을 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!