2015-01-23 4 views
0

wxpython에서 프레임 내에서 창을 여는 방법. 파일 -> 하위 파일을 클릭하면 창을 열려고합니다. 코드는 다음과 같습니다.wxpython에서 프레임에 창을 추가하는 방법

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import wx 
class MainMenu(wx.Frame): 

def __init__(self, *args, **kwargs): 
    # ID_F = 1 
    super(MainMenu, self).__init__(*args, **kwargs) 
    self.Maximize(True)  

    self.InitUI() 

def InitUI(self): 
    #self.Bind(wx.EVT_MENU, self.OnAbout, None,id= 1) 
    fileMenu1 = wx.Menu() 
    menubar = wx.MenuBar() 
    fitem1 = fileMenu1.Append(1, '&Sub File\tCtrl+B', 'Sub File..') 
    menubar.Append(fileMenu1, '&File') 
    self.SetMenuBar(menubar) 
    self.SetTitle('Simple menu') 
    self.Centre() 
    self.Show(True) 

def OnAbout(self, event): 
    AboutFrame().Show() 



class AboutFrame(wx.Frame): 


def __init__(self): 
    wx.Frame.__init__(self, parent, 5, 'New Window', size=(400,300)) 
    wx.Frame.CenterOnScreen(self) 


def main(): 
    ex = wx.App() 
    MainMenu(None) 
    ex.MainLoop()  

if __name__ == '__main__': 
    main() 

나는 그것이 간단 할 것이라고 생각했습니다. 화면에 서브 윈도우를 중앙에 배치하는 방법. 나는

답변

0

주, 메뉴 선택에 응답 메뉴를 포함하는 프레임 [대한] EVT_MENU 핸들러를 제공하기 위해,이에 믿을 수 없을만큼 새로운 해요.
http://wxpython.org/Phoenix/docs/html/MenuBar.html#menubar

...

wx.Frame 방법 : 당신이 원하는 경우
센터()
http://wxpython.org/Phoenix/docs/html/Frame.html?highlight=frame#Frame.Centre

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import wx 
class MainMenu(wx.Frame): 

    def __init__(self, *args, **kwargs): 
     super(MainMenu, self).__init__(*args, **kwargs) 
     self.Maximize(True)  

     self.InitUI() 

    def InitUI(self): 
     fileMenu1 = wx.Menu() 
     menubar = wx.MenuBar() 

     #********HERE************ 
     fitem1 = fileMenu1.Append(-1, '&Sub File\tCtrl+B', 'Sub File..') 
     fitem2 = fileMenu1.Append(-1, '&Dog\tCtrl+D', 'Sub Dog..') 

     self.Bind(wx.EVT_MENU, self.onclick_subfile, fitem1) 
     #************************* 

     menubar.Append(fileMenu1, '&File') 
     self.SetMenuBar(menubar) 
     self.SetTitle('Simple menu') 
     self.Centre() 
     self.Show(True) 

    def OnAbout(self, event): 
     AboutFrame().Show() 

    #**********HERE************* 
    def onclick_subfile(self, event): 
     frame = wx.Frame(None, -1, "My Second Frame") 
     frame.Center() 
     frame.Show() 




class AboutFrame(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, parent, 5, 'New Window', size=(400,300)) 
     wx.Frame.CenterOnScreen(self) 


    def main(): 
     ex = wx.App(redirect=False) 
     MainMenu(None) 
     ex.MainLoop()  

    if __name__ == '__main__': 
     main() 

내부 창이 때 파괴한다 바깥 창을 닫고 바깥 쪽 창 안쪽 창의 부모 :

def onclick_subfile(self, event): 
     frame = wx.Frame(self, -1, "My Second Frame") 
관련 문제