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