2014-11-18 2 views
0

에 키를 눌러에 내 파이썬 스크립트를 실행할 때마다 클릭나는 wx.Frame 또는 내가 다음 클래스를 실행하고 키보드

class MySplashScreen(wx.SplashScreen): 
    def OnSplashScreenExit(self,e): 
     self.Hide(); 
     frame = MyFrame(None) 

    def __init__(self,parent=None): 
     if "linux" in sys.platform or "darwin" in sys.platform:  
      bmp = wx.Bitmap(PATH + '/../icons/DNA.png', wx.BITMAP_TYPE_PNG) 
     elif "win" in sys.platform and not 'darwin' in sys.platform:  
      bmp = wx.Bitmap(PATH + '\..\icons\DNA.png', wx.BITMAP_TYPE_PNG)  

     wx.SplashScreen.__init__(self,bmp,wx.SPLASH_CENTER_ON_SCREEN | wx.SPLASH_TIMEOUT,SPLASH_TIMEOUT,parent) 
     self.Bind(wx.EVT_CLOSE,self.OnSplashScreenExit) 

을하지만 다른 MyFrames 내 MyFrame을 아무 곳이나 클릭 할 때 열립니다. 디버깅하는 동안 MyFrame의 아무 곳이나 클릭 할 때마다 OnSplashScreenExit 함수가 실행된다는 것을 알았습니다. 누군가 내가이 문제를 해결하도록 도울 수 있습니까? 이 문제는 리눅스에서 생산할 수 없습니다. 파이썬 2.7 시스템에서만 윈도우 8.1에서 발생한다.

+0

당신은 OnSplashScreenExit에서 MyFrame을을 만드는, 그래서 그 설명합니다. MyFrame을 다른 곳에서도 만들고 있습니까? 실행중인 샘플 http://wiki.wxpython.org/MakingSampleApps를 보는 것이 도움이됩니다. – Werner

답변

0

나는 다음과 같이 변경하여 문제를 해결할 수 : 스플래시 닫을 때 프레임이 열립니다 이유

if "win" in sys.platform: 
     self.OnSplashScreenExit("") 
else: 
     self.Bind(wx.EVT_CLOSE,self.OnSplashScreenExit)