tk的一个滚动条控制两个组件一起滚动?
时间: 2023-06-18 12:06:29 浏览: 369
可以使用`Scrollbar`和`Canvas`组件实现滚动两个组件的效果。
具体实现步骤:
1. 创建一个`Scrollbar`组件,并设置其`command`属性为一个函数,用于控制需要滚动的两个组件。
2. 创建两个需要滚动的组件,例如`Text`和`Canvas`。
3. 将`Scrollbar`组件与需要滚动的两个组件绑定,可以使用`set`方法将`Scrollbar`的`command`属性与两个组件的`yview`方法绑定。
4. 将滚动条和需要滚动的两个组件进行布局。
下面是一个简单的示例代码:
```python
import tkinter as tk
root = tk.Tk()
# 创建一个Scrollbar组件
scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
# 创建需要滚动的两个组件
text = tk.Text(root)
canvas = tk.Canvas(root)
# 将Scrollbar与需要滚动的两个组件绑定
text.config(yscrollcommand=scrollbar.set)
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=lambda *args: (
text.yview(*args),
canvas.yview(*args)
))
# 布局Scrollbar和需要滚动的两个组件
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
root.mainloop()
```
运行代码后,可以看到一个带有滚动条的窗口,该滚动条可以同时控制两个组件的滚动。
阅读全文