2013-06-03 2 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

프레임 사이의 관계가 명확하지 않지만 기본 프레임의 다른 프레임 하위 프레임을 만들면 (즉, 프레임을 만들 때 기본 프레임을 상위 프레임으로 지정하는 경우) 메인 프레임이 축소 될 때 자동으로 최소화되고 복원됩니다 프레임을 최소화하거나 복원하면 특별한 작업을 수행 할 필요가 없습니다.

관련 문제