跟踪打开/生成的Tkinter表单

时间:2019-07-13 04:06:29

标签: python-3.x tkinter

我有一个tkinter应用程序,当我单击按钮时可以打开子窗体。

def open_new_form():
   child_form = ChildForm()
   list_of_children_form.append(child_form)
   child_form.show()

我如何跟踪主应用程序创建的所有表单?

我希望能够计算出处于活动状态(未关闭)的子窗体的数量。我可以使用每次创建新的子窗体都会增加的计数器,但是如果关闭/销毁了子窗体,如何更新计数器。

更新1: 我有一个列表来记录创建的子表单(请参阅上面的更新代码)。如何跟踪列表中这些状态的状态(是否关闭)?

我想做什么:

  1. 我的主窗口打开4个child_forms(c1,c2,c3,c4)
  2. 它创建了[c1,c2,c3,c4]形式的列表
  3. 我关闭了child_form c1,如何通知主窗口我关闭了c1,以便可以将其从列表中删除。

更新2: 尝试过[furas]的建议。我在主表单上添加了一个方法delete_child(),将父表单传递给了子表单。

def __init__(self, parent):
        self._parent = parent

def _on_form_closing(self):
        self._parent.delete_child()
        self.child_form.destroy()

但是,我得到这个错误:

AttributeError: '_tkinter.tkapp' object has no attribute 'delete_child'

0 个答案:

没有答案