我正在努力学习构建基本的GUI,我已经开始使用简单的文本编辑器。到目前为止,我已经能够很好地完成任务,但我遇到了一个奇怪的问题。当我进行构建时,我可以单击窗口的红色“X”退出按钮(右上角)并更改一些内容并重新启动它。但是在定义了一些函数之后它似乎停止了工作,编辑器启动很好并且使用了我到目前为止使用的菜单部分,但是它不会让我“X”出来。我必须重新启动内核以使其关闭,这会让人烦恼。我试过看了它,但我没有改变任何我知道的应该导致这个。所以我想我会把它带给专家并获得意见/经验。
#!/user/bin/env python
import os
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(500, 300))
self.control=wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.CreateStatusBar()
filemenu=wx.Menu()
About_Menu=filemenu.Append(wx.ID_ABOUT, '&About','Info about')
Exit_Menu=filemenu.Append(wx.ID_EXIT,'E&xit','Term')
Open_Menu=filemenu.Append(wx.ID_OPEN,'&Open','Open File')
menuBar=wx.MenuBar()
menuBar.Append(filemenu,'&File')
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.OnAbout, About_Menu)
self.Bind(wx.EVT_MENU, self.OnExit, Exit_Menu)
self.Bind(wx.EVT_MENU, self.OnOpen, Open_Menu)
self.Show(True)
def OnAbout(self,e):
dlg=wx.MessageDialog( self, 'The Editor', 'About the Editor', wx.OK)
dlg.ShowModal()
dlg.Destroy()
def OnExit(self,e):
dlg=wx.MessageDialog( self, 'Test Exit','Exit', wx.OK)
dlg.ShowModal()
dlg.Destroy()
def OnOpen(self,e):
self.dirname=''
dlg=wx.FileDialog(self, 'Choose a file', self.dirname, '','*.*', wx.OPEN)
if dlg.ShowModal()==wx.ID_OK:
self.filename=dlg.GetFilename()
self.dirname=dlg.GetDirectory()
f=open(os.path.join(self.dirname, self.filename), 'r')
self.control.SetValue(f.read())
f.close()
dlg.Destroy()
app=wx.App(False)
frame=MainWindow(None, 'Sample')
app.MainLoop