python在一个frame上新建一个小范围的frame,然后在新建的frame上给一个treeview加水平竖直滚动轴应用举例,除了pack的方式
时间: 2024-03-28 12:41:32 浏览: 111
TreeView的简单例子
4星 · 用户满意度95%
可以使用place()方法来在一个frame上新建一个小范围的frame,然后在新建的frame上给一个treeview加水平竖直滚动轴。以下是一个示例代码:
```python
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# 创建一个大frame
main_frame = tk.Frame(root, width=400, height=400, bg='white')
main_frame.pack(fill='both', expand=True)
# 创建一个小frame
sub_frame = tk.Frame(main_frame, width=200, height=200, bg='gray')
sub_frame.place(x=50, y=50)
# 创建一个treeview
tree = ttk.Treeview(sub_frame)
tree.pack(side='left', fill='both', expand=True)
# 创建一个垂直滚动条
y_scrollbar = ttk.Scrollbar(sub_frame, orient='vertical', command=tree.yview)
y_scrollbar.pack(side='right', fill='y')
# 创建一个水平滚动条
x_scrollbar = ttk.Scrollbar(main_frame, orient='horizontal', command=tree.xview)
x_scrollbar.pack(side='bottom', fill='x')
# 给treeview添加滚动条
tree.configure(yscrollcommand=y_scrollbar.set, xscrollcommand=x_scrollbar.set)
# 添加treeview的列
tree["columns"] = ("1", "2", "3")
tree.column("#0", width=0, stretch='no')
tree.column("1", width=100, minwidth=100, stretch='no')
tree.column("2", width=100, minwidth=100, stretch='no')
tree.column("3", width=100, minwidth=100, stretch='no')
# 添加treeview的表头
tree.heading("#0", text="", anchor='center')
tree.heading("1", text="Column 1", anchor='center')
tree.heading("2", text="Column 2", anchor='center')
tree.heading("3", text="Column 3", anchor='center')
# 添加treeview的数据
for i in range(100):
tree.insert("", "end", text="Item %s" % i, values=("value1", "value2", "value3"))
root.mainloop()
```
在这个示例代码中,首先创建了一个大frame(main_frame),然后在大frame中创建了一个小frame(sub_frame),并使用place()方法将小frame放置在大frame中间。接着,在小frame上创建了一个treeview,并使用pack()方法将其放置在小frame的左边,并使用fill和expand参数使其充满小frame。然后,创建了一个垂直滚动条(y_scrollbar),并使用pack()方法将其放置在小frame的右边,并使用fill参数使其填充垂直方向。接着,创建了一个水平滚动条(x_scrollbar),并使用pack()方法将其放置在大frame的底部,并使用fill参数使其填充水平方向。最后,给treeview添加了垂直滚动条和水平滚动条,并添加了一些数据用于演示。
阅读全文