TK 怎么样可以在画布中编写文本,当文本行数大于画布高度就出现滚轮
时间: 2023-11-28 15:50:59 浏览: 44
你可以使用 `tkinter.Text` 组件来实现在画布中编写文本,当文本行数大于画布高度时出现滚轮的效果。首先,你需要创建一个 `tkinter.Canvas` 对象和一个 `tkinter.Scrollbar` 对象,然后将它们放置在你的窗口中。接下来,你需要创建一个 `tkinter.Text` 对象,并将其添加到你的画布中。最后,你需要将你的滚动条与文本框绑定起来,这样当用户滚动滚动条时,文本框的视图也会随之滚动。
以下是一个简单的示例代码,演示了如何在画布中创建带有滚动条的文本框:
```python
import tkinter as tk
root = tk.Tk()
# 创建一个画布和一个滚动条
canvas = tk.Canvas(root, width=400, height=300)
scrollbar = tk.Scrollbar(root, orient='vertical', command=canvas.yview)
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.pack(side='right', fill='y')
canvas.pack(side='left', fill='both', expand=True)
# 在画布中添加一个文本框
text = tk.Text(canvas)
text.pack(side='left', fill='both', expand=True)
canvas.create_window((0, 0), window=text, anchor='nw')
# 添加一些文本到文本框中
for i in range(50):
text.insert('end', f'Line {i}\n')
# 配置文本框的滚动区域
text.config(yscrollcommand=scrollbar.set)
text.config(height=10)
text.config(width=30)
root.mainloop()
```
在这个示例中,我们首先创建了一个 `Canvas` 对象和一个垂直方向的 `Scrollbar` 对象。然后,我们将 `yscrollcommand` 属性设置为 `canvas.yview()`,这样当滚动条被滚动时,它会调用 `canvas.yview()` 来更新画布的视图。接下来,我们创建了一个 `Text` 对象,并将其添加到画布中。我们还在 `Text` 对象中添加了一些文本。最后,我们将 `Text` 对象的 `yscrollcommand` 属性设置为 `scrollbar.set`,这样当滚动条被滚动时,它会调用 `scrollbar.set` 来更新滚动条的位置。
阅读全文