控制Tkinter中滚动条的位置

2 投票
1 回答
4130 浏览
提问于 2025-04-17 21:46

我正在学习Tkinter。下面这个程序运行得很好。它创建了一个文本框和一个与文本框连接的滚动条。还有一个按钮,按下这个按钮后会在文本框中插入一行文字。现在我想做的是,让滚动条自动移动,当文本超过一个屏幕时,滚动条会自动向下滚动,这样用户就能看到输入的最后一行。我希望这个文本框能像一个扩展的状态窗口,让用户能够看到目前为止的进展。现在用户需要不断地用滚动条向下滚动到最后一行。我想让这个过程变得自动化。有没有什么命令可以做到这一点呢?

谢谢!

from Tkinter import *

root = Tk()

def checkFn():
    text.insert(END, ' --> The check button has been pressed ... \n')

# ............... Frame 1 .................................
frame1 = Frame(root)
frame1.pack(side=TOP, fill=X)

b = Button(frame1, text='Check', command=checkFn)
b.pack(side=LEFT, padx=5)


# .............. Text Frame .................................
frame10 = Frame(root)
frame10.pack(side=TOP, fill=X)


scrlBar = Scrollbar(frame10)
scrlBar.pack(side=RIGHT, fill=Y)

text = Text(frame10, yscrollcommand=scrlBar.set)
text.insert(INSERT, 'abcd\n')
text.pack(side=LEFT, fill=BOTH)
scrlBar.config(command=text.yview)

root.mainloop()

1 个回答

2

我觉得最简单的方法就是用 see(index)

在你的 checkFn() 方法里,使用 text.see(END)

撰写回答