2015-05-29 79 views
0
import wx 
class MainWindow(wx.Frame): 
    def _init_ (self, parent, title): 
     wx.Frame. __init__(self, parent, title=title, size=(200, 100)) 
     self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) 
     self.CreateStatusBar() 

     #setting up the menu 

     filemenu = wx.Menu() 

     menuAbout = filemenu.Append(wx.ID_ABOUT, "About", "information about the use of this program") 
     menuExit = filemenu.Append(wx.ID_EXIT, "Exit", "Exit this program") 

     menuBar = wx.MenuBar() 

     menuBar.Append(filemenu,"File") 
     self.SetMenuBar(menuBar) 
     self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout) 
     self.Bind(wx.EVT_MENU, self.OnExit, menuExit) 

     self.Show(True) 

    def OnAbout(self,e): 
     dlg = wx.MessageDialog(self, "A small text editor", "About sample  editor", wx.OK) 
     dlg.ShowModal() 
     dlg.Destroy() 

    def OnExit(self,e): 
     self.Close(True) 
    app = wx.App(False) 
    frame = MainWindow(None, "sample editor") 
    app.MainLoop() 

以下是完整的回溯的预期论点2:类型错误:在方法 '新帧',类型 '诠释'

C:\Python27\python.exe "C:/Users/User/Google Drive/order/menubar.py" 
Traceback (most recent call last): 
File "C:/Users/User/Google Drive/order/menubar.py", line 39, 
    in <module> frame = MainWindow(None, "sample editor") 
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx_windows.py", line 580, 
    in init windows.Frame_swiginit(self,windows.new_Frame(*args, **kwargs)) 
TypeError: in method 'new_Frame', expected argument 2 of type 'int' 
Process finished with exit code 1 
+1

你能告诉我们充分回溯? – Scironic

+0

从['wx.Frame'](http://www.wxpython.org/docs/api/wx.Frame-class.html)的文档中,参数是__init __(self,parent,id,title,pos ,大小,样式,名称)'。当它应该是一个id(类型为“int”)时,你已经发送了'parent'作为第二个参数。 – 101

+0

你真的得到了_init_每边都有一个下划线吗? –

回答

0
  1. 检查的__init__方法名拼写。它只有一个下划线 而不是2
  2. 检查拼写wx.Frame.__init__一行。是有多余的间隙
  3. 检查从压痕线app = wx.App(False)

开始,你的代码后应该如下所示:

import wx 
class MainWindow(wx.Frame): 
    def __init__ (self, parent, title): 
     wx.Frame.__init__(self, parent, title=title, size=(200, 100)) 
     self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) 
     self.CreateStatusBar() 

     #setting up the menu 

     filemenu = wx.Menu() 

     menuAbout = filemenu.Append(wx.ID_ABOUT, "About", "information about the use of this program") 
     menuExit = filemenu.Append(wx.ID_EXIT, "Exit", "Exit this program") 

     menuBar = wx.MenuBar() 

     menuBar.Append(filemenu,"File") 
     self.SetMenuBar(menuBar) 
     self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout) 
     self.Bind(wx.EVT_MENU, self.OnExit, menuExit) 

     self.Show(True) 

    def OnAbout(self,e): 
     dlg = wx.MessageDialog(self, "A small text editor", "About sample  editor", wx.OK) 
     dlg.ShowModal() 
     dlg.Destroy() 

    def OnExit(self,e): 
     self.Close(True) 

app = wx.App(False) 
frame = MainWindow(None, "sample editor") 
app.MainLoop() 
+0

非常感谢Vader –

相关问题