TypeError: in method 'new_Frame', expected argument 2 of type 'int'
TypeError: in method 'new_Frame', expected argument 2 of type 'int'
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()
这是完整的回溯:
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
- 检查
__init__
方法名称的拼写。它只有 1 个下划线
而不是 2
- 检查
wx.Frame.__init__
行的拼写。是有过多的space
- 检查从行
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()
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()
这是完整的回溯:
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
- 检查
__init__
方法名称的拼写。它只有 1 个下划线 而不是 2 - 检查
wx.Frame.__init__
行的拼写。是有过多的space - 检查从行
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()