0

我正在尝试学习构建基本的 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

这是我必须重新启动才能关闭它

4

0 回答 0