如何才能使两个顶级小部件无法同时打开?

时间:2010-07-05 21:14:28

标签: python tkinter

我有一个按下按钮时创建的顶级窗口小部件。如果再次按下相同的按钮,如何在顶级窗口小部件仍处于打开状态时将其移动到顶级窗口小部件中,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

想象一下,你在课堂上有以下方法。按下按钮时会调用此方法。您还将在__init__方法中定义实例属性:self.toplevel = None

def button_press(self):
    if self.toplevel is None:
        self.toplevel = ... # another method to create toplevel widget
    else:
        # set focus to self.toplevel
        # you can use self.toplevel.deiconify() if self.toplevel is minimised
        # also look at self.toplevel.lift() to bring the window to the top

当toplevel小部件被销毁时,您还需要将self.toplevel重置为None

另请参阅小部件的focus_set方法。您可能必须将take_focus属性设置为True以获取顶级窗口小部件。但是,您可能希望将焦点设置到顶层小部件上的特定小部件(例如文本框)。