>백엔드 개발 >파이썬 튜토리얼 >Tkinter에서 수직 스크롤 막대를 사용하여 스크롤 가능한 프레임을 만드는 방법은 무엇입니까?

Tkinter에서 수직 스크롤 막대를 사용하여 스크롤 가능한 프레임을 만드는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-23 20:35:10552검색

How to Create a Scrollable Frame with a Vertical Scrollbar in Tkinter?

프레임용 Tkinter 스크롤바

스크롤 가능한 프레임 사용

tkinter 패키지는 다음을 제공하지 않습니다. 프레임에 대한 내장 수직 스크롤바. 그러나 캔버스, 스크롤바, 프레임 위젯을 조합하여 만들 수 있습니다. 예는 다음과 같습니다:

class VerticalScrolledFrame(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)

        # Create a canvas
        canvas = tk.Canvas(self)
        canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

        # Create a vertical scrollbar
        scrollbar = ttk.Scrollbar(self, orient=tk.VERTICAL)
        scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

        # Connect the scrollbar to the canvas
        scrollbar.config(command=canvas.yview)
        canvas.config(yscrollcommand=scrollbar.set)

        # Reset the view
        canvas.xview_moveto(0)
        canvas.yview_moveto(0)

        # Create a frame inside the canvas
        self.interior = ttk.Frame(canvas)
        canvas.create_window(0, 0, window=self.interior, anchor=NW)

스크롤바를 마우스 휠에 바인딩

기본적으로 Tkinter 스크롤바에는 마우스 휠 스크롤 기능이 없습니다. 이를 활성화하려면 마우스 휠 이벤트를 캔버스의 yview_scroll 메서드에 바인딩할 수 있습니다.

canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-event.delta/120), "units"))

OP 코드와의 차이점

  • VerticalScrolledFrame 클래스 더욱 강력한 스크롤 가능 프레임 구현을 제공합니다.
  • 캔버스 크기를 자동으로 조정하여 내부 프레임에 맞춥니다.
  • 마우스 휠 스크롤도 지원합니다.

기타 사항

  • 라벨과 같은 일반 위젯의 경우 ), 그리드는 더 구조화된 정보를 제공하므로 장소보다 선호됩니다. 레이아웃.
  • anchor='nw'는 창(내부 프레임)이 캔버스의 북서쪽 모서리에 위치해야 함을 지정합니다.

위 내용은 Tkinter에서 수직 스크롤 막대를 사용하여 스크롤 가능한 프레임을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.