设置 tkinter 文本视图/文本视图区域

Setting tkinter Text yview / Text view area

我想将 tkinter 文本框的视图区域/yview 设置为特定区域。我该怎么做呢?我知道可以检索当前的 yview 但未能将其设置为所需的值。我知道它可以设置为所需的值,因为我正在获取 yview、销毁文本框,然后重新创建文本框。从那里我想将视图区域设置为以前的状态,但遇到了麻烦。我该怎么办?

示例 yviews:

(0.0, 1.0)
(0.07407407407407407, 1.0)

代码:

#Define the Text widget
t = Text(window)
t.pack()
for i in range(100):
    t.insert(END, "{}\n".format(i))
def get_y():
    global y
    y = t.yview()
b = Button(window, text="get y", command=get_y)
b.pack()
b1 = Button(window, text="set y", command=lambda: t.yview(MOVETO, y[0]/y[1]))
b1.pack()

上面的代码让用户非常接近,但它总是稍微向上或向下并且不太正确。我应该怎么做才能解决它?这可以用 xview 类似地完成吗?

我明白了。我们可以使用 t.yview() 获取 yview,但我们不能只插入一个 yview 值并期望它使用它。相反,我们必须使用 t.yview(MOVETO, yview[0])。这给了它一个可以使用的值并转到正确的位置

注意: 同样可以用 xview 完成,但使用 xview[1] 代替