import tkinter as tk root = tk.Tk() text = tk.Text(root) text.pack(side =tk.LEFT) sl = tk.Scrollbar(root) sl.pack(side = tk.RIGHT,fill = tk.Y) for i in range(100): text.insert(tk.END,str(i)+"\n") text.see(END) text['yscrollcommand'] = sl.set sl['command'] = text.yview root.mainloop()为什么报错:name 'END' is not defined
时间: 2024-02-22 22:54:43 浏览: 70
在你的代码中,`END`是Tkinter Text Widget中的常量,表示文本末尾的索引位置。但是你在使用`text.see(END)`和`text['yscrollcommand'] = sl.set`时没有指定它的作用域,所以会提示`END`未定义的错误。
要解决这个问题,你可以使用`tk.END`来明确指定它的作用域,如下所示:
```python
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack(side=tk.LEFT)
sl = tk.Scrollbar(root)
sl.pack(side=tk.RIGHT, fill=tk.Y)
for i in range(100):
text.insert(tk.END, str(i)+"\n")
text.see(tk.END)
text['yscrollcommand'] = sl.set
sl['command'] = text.yview
root.mainloop()
```
在上面的代码中,我们使用`tk.END`来指定`text.see()`中的`END`常量所在的作用域。
阅读全文