python - Tkinter 滚动条位置,yview_moveto() 似乎不起作用
问题描述
考虑以下示例:
from tkinter import *
startingWin = Tk()
canvas = Canvas(startingWin, height=600)
canvas.grid(row=0, column=0,sticky="nsew")
canvasFrame = Frame(canvas)
canvas.create_window(0, 0, window=canvasFrame, anchor='nw')
for i in range(70):
element = Button(canvasFrame, text='Button %s ' % i)
element.grid(row=i, column=0)
yscrollbar = Scrollbar(startingWin, orient=VERTICAL)
yscrollbar.config(command=canvas.yview)
canvas.config(yscrollcommand=yscrollbar.set)
yscrollbar.grid(row=0, column=1, sticky="ns")
canvas.yview_moveto(0.5)
canvasFrame.bind("<Configure>", lambda event: canvas.configure(scrollregion=canvas.bbox("all")))
startingWin.mainloop()
预期输出: 中间的滚动条。
但是,无论我给出的值如何,我都会得到 Scrollbar ,如下所示:yview_moveto()
我怎样才能解决这个问题?
解决方案
在定义canvas.yview_moveto(0.5)
之前,您不应该调用。scrollregion
推荐阅读
- python - 如何更改满足给定条件的列值,同时保持该列不满足条件的值
- rust - 如何为关联类型实现 From?
- javascript - 不知道如何在本机反应中显示对象内容
- r - 已解决:当两个值都已明确定义时,为什么我会收到一条消息说我有一个缺失值?
- javascript - 如何使用 javascript/type 脚本从父窗口获取子窗口 url
- python - 为什么 Flask 路由函数没有从 exec(open('pythonscript.py').read() 获得正确的变量更改?
- reactjs - 如何在反应中使功能组件中的大量状态可维护?
- python - Python Add_Lowest 到 sns.lineplt
- javascript - 使用jquery将图像放入相框内
- python-3.x - TypeError:熊猫数据框中的预期字符串或类似字节的对象