【问题标题】:Shrink a frame on a canvas, when the children of the frame are removed当框架的子级被移除时,缩小画布上的框架
【发布时间】:2016-02-20 00:50:19
【问题描述】:

我在框架上有可滚动的小部件。框架在画布上。它是一个控制台和清除控制台按钮调用

for i in self.CanvasFrame.winfo_children():
     i.destroy()

CanvasFrame 是画布上的框架,它的子项被销毁。问题是,当孩子们离开时,框架的大小仍然存在,并且配置画布的事件由于剩余的大小而不起作用。事件处理程序:

self.update()
self.Canvas.configure(scrollregion = self.Canvas.bbox("all"))
self.Canvas.yview_moveto(1.0)

我试过了

self.Canvas.itemconfigure(1, height = 0) #didnt work
self.Canvas.itemconfigure(1, height = 1) 

另一行给它一个固定的高度,添加新的孩子不会调整框架的大小。我该如何解决这个问题?

更新: 工作清晰的控制台方法:

for i in self.CanvasFrame.winfo_children():
    i.destroy()
Label(self.CanvasFrame).pack()
self.CanvasConfigureEvent()
self.CanvasFrame.winfo_children()[0].destroy()

【问题讨论】:

    标签: python-3.x canvas tkinter frame


    【解决方案1】:

    当您从另一个小部件(例如框架)中删除所有小部件时,不再有几何管理器可以控制。由于没有几何管理器可以控制,因此永远不会指示框架调整大小。

    最简单的解决方案是创建一个 1x1 框架或标签并将其打包在框架中,至少是暂时的。这将导致打包算法启动并调整父框架的大小。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      相关资源
      最近更新 更多