📜  Python-Tkinter Treeview 滚动条(1)

📅  最后修改于: 2023-12-03 15:19:12.709000             🧑  作者: Mango

Python-Tkinter Treeview 滚动条

Python-Tkinter Treeview 是一个非常常用的 GUI 控件,它可以用于展示大量的数据,但是当数据量过大的时候,往往会导致 Treeview 显示不完全的问题,因此需要添加滚动条来解决这个问题。本文将介绍如何在 Python-Tkinter Treeview 控件中添加滚动条。

添加竖直滚动条
from tkinter import ttk, Tk

root = Tk()

# 创建 Treeview 控件
treeview = ttk.Treeview(root)

# 插入数据
for i in range(20):
    treeview.insert("", i, text=f"item {i}")

# 创建竖直滚动条并与 Treeview 控件关联
scroll_y = ttk.Scrollbar(root, orient="vertical", command=treeview.yview)
treeview.configure(yscrollcommand=scroll_y.set)
scroll_y.pack(side="right", fill="y")

# 显示 Treeview 控件
treeview.pack(fill="both", expand=True)

root.mainloop()

如上代码所示,我们首先创建了一个 Treeview 控件并插入了 20 条数据,接着我们创建了一个 orient 为 vertical 的滚动条,并通过 treeview.configure() 方法将滚动条与 Treeview 控件关联。最后将滚动条放置在界面的右边,使它在竖直方向上充满整个界面。

添加水平滚动条
from tkinter import ttk, Tk

root = Tk()

# 创建 Treeview 控件
treeview = ttk.Treeview(root)

# 插入数据并设置 Treeview 控件的 rties 为 True
treeview.config(columns=("col1", "col2"), show="headings")
treeview.column("col1", width=100, anchor="center")
treeview.column("col2", width=100, anchor="center")
for i in range(20):
    treeview.insert("", i, text=f"item {i}", values=("value1", "value2"))

# 创建水平滚动条并与 Treeview 控件关联
scroll_x = ttk.Scrollbar(root, orient="horizontal", command=treeview.xview)
treeview.configure(xscrollcommand=scroll_x.set)
scroll_x.pack(side="bottom", fill="x")

# 显示 Treeview 控件
treeview.pack(fill="both", expand=True)

root.mainloop()

如上代码所示,我们首先创建一个带有两列的 Treeview 控件并插入了 20 条数据。然后我们将 Treeview 控件的 show 属性设置为 headings,这样它只会显示表头而不会显示每一行的左边空白区域。接着我们为每一列设置了宽度和对齐方式。接下来,我们创建了一个 orient 为 horizontal 的滚动条,并通过 treeview.configure() 方法将滚动条与 Treeview 控件关联。最后将滚动条放置在界面的底部,使它在水平方向上充满整个界面。

添加竖直和水平滚动条
from tkinter import ttk, Tk

root = Tk()

# 创建 Treeview 控件
treeview = ttk.Treeview(root)

# 插入数据并设置 Treeview 控件的 rties 为 True
treeview.config(columns=("col1", "col2"), show="headings")
treeview.column("col1", width=100, anchor="center")
treeview.column("col2", width=100, anchor="center")
for i in range(20):
    treeview.insert("", i, text=f"item {i}", values=("value1", "value2"))

# 创建竖直滚动条并与 Treeview 控件关联
scroll_y = ttk.Scrollbar(root, orient="vertical", command=treeview.yview)
treeview.configure(yscrollcommand=scroll_y.set)
scroll_y.pack(side="right", fill="y")

# 创建水平滚动条并与 Treeview 控件关联
scroll_x = ttk.Scrollbar(root, orient="horizontal", command=treeview.xview)
treeview.configure(xscrollcommand=scroll_x.set)
scroll_x.pack(side="bottom", fill="x")

# 显示 Treeview 控件
treeview.pack(fill="both", expand=True)

root.mainloop()

如上代码所示,我们将前面两个示例中的代码合并在一起,同时添加了竖直和水平滚动条。运行程序后你可以看到一个带有两个滚动条的 Treeview 控件。

总结

通过本文的介绍,相信你已经掌握了在 Python-Tkinter Treeview 控件中添加滚动条的方法。你可以根据自己的实际需要添加竖直、水平或者同时添加竖直和水平滚动条。