ホームページ >バックエンド開発 >Python チュートリアル >Tkinter で垂直スクロールバーを備えたスクロール可能なフレームを作成するにはどうすればよいですか?

Tkinter で垂直スクロールバーを備えたスクロール可能なフレームを作成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-23 20:35:10549ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。