使用grid_forget Tkinter删除帧的部分

时间:2012-07-10 06:46:21

标签: python user-interface tkinter pack ttk

我使用以下代码删除了我的框架的一部分(希望删除当前显示的框数 - 这可能会有所不同):

for i in xrange(self.number_boxes):

    self.box[i].grid_remove()
    self.choice_title.grid_remove()
然而,我最终得到以下结论:

Table

如果坚持住在那里的主窗口的最后一部分,我做错了什么?!

我有根窗口,然后是主窗口'win1',其中框架'frame_table'包含所有表格。背景设置为黑色。

更新:对应于更改OptionMenu中的选项:

我没有创建单独的帧,而是在当前帧'frame_table'中创建了一组输入框。当选择“列表”选项时,用户输入要创建的框的数量。使用另一个选项,它总是创建2个盒子。使用“固定”值时,需要删除所有框,因为不需要额外的框。

因此,如果从“列表”转到“菜单中的其他选项(未修复)”,则需要在创建新框之前删除“列表”选项中的框。

1 个答案:

答案 0 :(得分:2)

成语:

for i in xrange(self.number_boxes):

    self.box[i].grid_remove()
    self.choice_title.grid_remove()
在python中很少需要

。也许你没有看到你的盒子被移除,因为你的self.number_boxes不正确(也许你忘了在某处更新它)。更好的方法是:

for box in self.boxes:
    box.grid_remove()
else:
    self.choice_title.grid_remove()

这可能(或可能不)解决您的问题。