如何在wxpython中打开框架内的窗口。 我想打开一个窗口,点击File-> SubFile。代码如下。
#!/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 :(得分:0)
注意要响应菜单选择,请为EVT_MENU提供处理程序 [for]包含菜单的框架 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")