2013-06-03 82 views
1

我很難在窗口最小化後恢復窗口。在wxpython中恢復窗口

最小化工作正常,但我想打開窗口備份.. 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) 

我到底做錯了什麼?我怎樣才能讓我的窗戶回來! :)

回答

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。

+0

如何在沒有計時器和時間限制的情況下提升它? – user2351394

+0

正如其他人提到的,你可以使第二個框架成爲主體的一個孩子,它應該工作。我想你可以捕獲EVT_ACTIVATE或EVT_MAXIMIZE,並以此方式提高第二幀。 –

+0

這個問題可能會幫助我們獲得更好的溝通。 http://stackoverflow.com/questions/16923906/wxpython-window-maximize-restore – user2351394

0

你的框架之間的關係並不清楚,但是如果你創建了主框架的其他框架子(即在創建主框架時指定主框架作爲其父框架),那麼它將被最小化並自動恢復框架被最小化或恢復,而不需要做任何特別的事情。