在带有滚动条的 canvas 上使用时如何跟踪框架的底部?

How to track the bottom of a frame when used on a canvas with a scrollbar?

我实现了这个解决方案的代码: Adding a scrollbar to a group of widgets in Tkinter 我基本上将它用作显示消息等的控制台。 我需要与使用

的文本小部件相同的效果
self.textwidget.see(END)

意味着框架将跟随底部的小部件。 我尝试在底部小部件上使用 focus(),但这没有用,而且看起来很奇怪。

旁注:

在 Bryan Oakley 的解决方案中,滚动小部件时它们会溢出 canvas。要修复它,请将 canvas 放入另一个具有相同大小的框架中。 在他的解决方案中,它不能看得太清楚,但是使用比方说凹陷的浮雕确实令人不安。然后在外框上使用浮雕而不是 canvas.

调用canvas的yview_moveto方法。它需要一个参数,表示小部件的百分比应该位于 window 的顶部。值 1.0 保证可滚动 canvas 的底部可见。

the_canvas.yview_moveto(1.0)

请注意,这仅在事件循环有机会在屏幕上呈现项目后有效(即:您不能在将内容添加到框架后立即调用它,除非您明确调用 update)