在wxpython中恢复窗口

时间:2013-06-03 16:38:15

标签: python wxpython wxwidgets

在最小化之后,我很难恢复窗口。

最小化工作正常,但我正在尝试重新打开窗口.. self恢复,但Vodka_Frame没有。

这是我的代码:

    def minimizeProgram(event):
        self.Iconize()
        Vodka_Frame.Iconize()


    def maximizeProgram(event):
        if self.IsIconized()=='True' or Vodka_Frame.IsIconized()=='True':
            self.Iconize(False)
            Vodka_Frame.Iconize(False)
            self.Show(True)
            Vodka_Frame.Show(True)
            self.Raise()
            Vodka_Frame.Raise()

    #### Catch the minimize event and minimize both windows.
    self.Bind(wx.EVT_ICONIZE,minimizeProgram)
    #### Catch the maximize event and maximize both windows.
    self.Bind(wx.EVT_LEFT_DCLICK,maximizeProgram)

我做错了什么?我怎样才能让我的窗户回来! :)

2 个答案:

答案 0 :(得分:1)

如果没有一个小的可运行的例子,我不确定你做错了什么。但是,我创建了以下适用于我的简单脚本:

import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)


########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="Test")
        panel = MyPanel(self)

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.toggleIconize, self.timer)
        self.timer.Start(5000)
        self.Show()

    #----------------------------------------------------------------------
    def toggleIconize(self, event):
        """"""
        if self.IsIconized() == True:
            print "raising..."
            self.Iconize(False)
            self.Raise()
        else:
            print "minimizing!"
            self.Iconize()

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()

基本上它只是每5秒钟最小化一次。我在Windows 7 Pro上使用Python 2.6.6和wxPython 2.8.12.1。

答案 1 :(得分:0)

您的帧之间的关系不明确,但如果您将另一帧作为主帧的子帧(即在创建它时将主帧指定为其父帧),则它将被最小化并在主帧时自动恢复最小化或恢复,无需你做任何特别的事情。