python 当一个root里面有多个Treeview ,如何实现滚动条操控整个页面的滚动?
时间: 2024-09-24 17:09:02 浏览: 69
要在一个Tkinter窗口中为多个`treeview`共享滚动条,可以按照以下步骤操作:
1. 创建一个单独的垂直滚动条(YSB)和水平滚动条(XSB),并将它们绑定到所有`treeview`上。这样,当任何一个滚动时,其他`treeview`也会同步滚动。
```python
from tkinter import *
# 创建主窗口
root = Tk()
# 创建滚动条变量
ysb_var = DoubleVar()
xsb_var = DoubleVar()
# 第一个treeview
tree1 = ttk.Treeview(root)
ysb1 = Scrollbar(root, orient="vertical", variable=ysb_var, command=tree1.yview)
ysb1.pack(side="right", fill="y")
tree1.configure(yscrollcommand=ysb1.set)
# 第二个treeview
tree2 = ttk.Treeview(root)
ysb2 = Scrollbar(root, orient="vertical", variable=ysb_var, command=tree2.yview)
ysb2.pack(side="right", fill="y")
tree2.configure(yscrollcommand=ysb2.set)
# 绑定滚动事件
for tree in (tree1, tree2):
tree.configure(xscrollcommand=xsb_var.set)
tree["yscrollcommand"] = ysb_var.get
# 启动主循环
root.mainloop()
```
阅读全文