Python Tkinter - 包含可扩展小部件的可滚动画布

时间:2011-02-22 19:03:29

标签: python canvas widget scroll tkinter

我正在使用Python Tkinter,我想在框架或画布中放置可变数量的文本框小部件。文本框沿框架垂直打包,因此第一个位于顶部,第二个位于下方,等等。我可以将所有按钮,列表框等小部件放在GUI的“左侧部分”中,同时“右侧部分”仅包含文本框小部件。我希望文本框小部件在主窗口最大化时水平扩展,但由于这些小部件的数量可变,所以包含文本框的“右侧部分”也需要能够垂直滚动以查看它们。

目前,我正在使用Canvas.create_window将可变数量的文本框添加到画布,虽然我可以滚动画布来查看所有文本框,但是当我调整窗口大小时它们不会水平扩展。我有一个替代GUI,它使用一个框架作为“右侧部分”,它允许小部件水平扩展,但如果包装太多,我不能滚动框架看到其他文本框,因为我没有滚动酒吧绑在一个框架上。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

解决方案非常简单:绑定到画布的<Configure>事件 - 这将导致在调整画布窗口小部件时调用回调。然后,您只需要获取画布的宽度并使用它来迭代调整所有嵌入窗口的大小。