TreeView 的滚动条 - Python
Scrollbar for TreeView - Python
我一直在尝试为 Python 中的 tkinter 树视图附加一个垂直滚动条。
由于某种原因,它显示在 TreeView 下而不是右侧。
screenshot
TreeView 在框架中
fFetchActivity = LabelFrame(root, text="Spis Twoich Aktywności", padx=50, pady=15)
fFetchActivity.place(x=20, y=200)
以及 TreeView 和 Scrollbar 代码:
tv1 = ttk.Treeview(fFetchActivity)
tv1.pack()
scrollbar_object = Scrollbar(fFetchActivity, orient="vertical")
scrollbar_object.pack(side=RIGHT, fill=Y)
scrollbar_object.config(command=tv1.yview)
tv1.configure(yscrollcommand=scrollbar_object.set)
有没有人对如何改进这个有任何想法?
谢谢!
pack
的默认设置是将小部件放置在未分配 space 的顶部。因此,当您执行 tv1.pack()
时,tv1
被放置在 window 的顶部。 pack
的另一个方面是,当一个小部件沿着一条边放置时,它会被分配到整条边上。例如,一旦小部件沿顶部放置,就不可能将某些东西放在右侧或左侧,因为小部件被分配了整个顶部边缘。
如果您希望一个小部件位于另一个小部件的右侧,您应该首先对该项目调用 pack
,以便它被分配到整个右侧。然后,您可以根据需要在剩余的 space.
中打包其他小部件
在您的情况下,这通常是您使用 pack
执行此操作的方式,以使树视图尽可能多地占据 space,并使滚动条位于右侧。
scrollbar_object.pack(side="right", fill="y")
tv1.pack(side='left', fill="both", expand=True)
我一直在尝试为 Python 中的 tkinter 树视图附加一个垂直滚动条。 由于某种原因,它显示在 TreeView 下而不是右侧。
screenshot
TreeView 在框架中
fFetchActivity = LabelFrame(root, text="Spis Twoich Aktywności", padx=50, pady=15)
fFetchActivity.place(x=20, y=200)
以及 TreeView 和 Scrollbar 代码:
tv1 = ttk.Treeview(fFetchActivity)
tv1.pack()
scrollbar_object = Scrollbar(fFetchActivity, orient="vertical")
scrollbar_object.pack(side=RIGHT, fill=Y)
scrollbar_object.config(command=tv1.yview)
tv1.configure(yscrollcommand=scrollbar_object.set)
有没有人对如何改进这个有任何想法? 谢谢!
pack
的默认设置是将小部件放置在未分配 space 的顶部。因此,当您执行 tv1.pack()
时,tv1
被放置在 window 的顶部。 pack
的另一个方面是,当一个小部件沿着一条边放置时,它会被分配到整条边上。例如,一旦小部件沿顶部放置,就不可能将某些东西放在右侧或左侧,因为小部件被分配了整个顶部边缘。
如果您希望一个小部件位于另一个小部件的右侧,您应该首先对该项目调用 pack
,以便它被分配到整个右侧。然后,您可以根据需要在剩余的 space.
在您的情况下,这通常是您使用 pack
执行此操作的方式,以使树视图尽可能多地占据 space,并使滚动条位于右侧。
scrollbar_object.pack(side="right", fill="y")
tv1.pack(side='left', fill="both", expand=True)