ウィンドウ内の他のフレームと並んでいるフレームにスクロールバーを追加する必要があります。私はその特定のフレームにスクロールバーを追加したいだけですが、私はそれに問題があります。スクロールバーウィジェットを格納するためにtk.Canvas
を使用する必要性について私は読んだが、まだ間違っている。Tkinterスクロールバーフレーム内のウィジェット
Picture of output。私はスクロールバーが左のフレームにのみ必要です。
はここに私のコード例です:
import tkinter as tk
class Example:
def __init__(self, master):
self.master = master
self.canvas = tk.Canvas(master, borderwidth=0, background="#ffffff")
self.frame = tk.Frame(self.canvas, background="#ffffff")
self.vsb = tk.Scrollbar(master, orient="vertical", command=self.canvas.yview)
self.canvas.configure(yscrollcommand=self.vsb.set)
self.vsb.pack(side="right", fill="y")
self.canvas.pack(side="left", fill="both", expand=True)
self.canvas.create_window((4,4), window=self.frame, anchor="nw",
tags="self.frame")
self.frame.bind("<Configure>", self.onFrameConfigure)
self.populate()
self.frame1 = tk.Frame(master, background="#ffffff",height=200,width=200)
self.frame1.pack()
def populate(self):
'''Put in some fake data'''
for row in range(100):
tk.Label(self.frame, text="%s" % row, width=3, borderwidth="1",
relief="solid").grid(row=row, column=0)
t="this is the second column for row %s" %row
tk.Label(self.frame, text=t).grid(row=row, column=1)
def onFrameConfigure(self, event):
'''Reset the scroll region to encompass the inner frame'''
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
root=tk.Tk()
app = Example(root)
root.mainloop()
コードを実行するとスクロールバーが表示され、スクリーンショットにはスクロールバーも表示されます。私は何の問題も見ません。 –