【问题标题】:Python TkInter delete childs's gridPython TkInter 删除孩子的网格
【发布时间】:2018-04-12 17:05:30
【问题描述】:

如何在 Tkinter 中将网格清除到画布中?

其实我有这个:

photoCanvas = Canvas(photoFrame,bg='#E5E7E9')
rowPhoto = 0
columnPhoto = 0
for i in range(0, len(listPhotos), 1):
     panel = Button(photoCanvas, image = listPhotos[i], borderwidth=0, height = 200, width = 200)
     panel.grid(row=rowPhoto, column=columnPhoto, padx=5, pady=5, sticky="nsew")
     if columnPhoto < 3:
         columnPhoto += 1
     else:
         rowPhoto += 1
         columnPhoto = 0

我想删除我所有的按钮。

谢谢

【问题讨论】:

  • 请发帖minimal reproducible example。您发布的内容太少,无法运行,无法创建网格,而且描述太模糊。
  • 我修改了我的帖子,抱歉我的英语不太好...

标签: python-2.7 button tkinter grid tkinter-canvas


【解决方案1】:

如果您想删除另一个小部件中的所有小部件(例如画布中的所有按钮),您可以简单地遍历小部件的所有子级并调用 destroy 方法。

例如:

for widget in photoCanvas.winfo_children():
    widget.destroy()

【讨论】:

  • 它可以工作,但在 GUI 中元素保持可见,我可以重绘或刷新我的画布吗?
  • @Deakox:您必须展示说明这一点的代码。当你做得正确时,元素就会消失。您无需刷新画布,这会自动发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 2020-05-08
相关资源
最近更新 更多