Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import wx
- import os
- class MyFrame(wx.Frame):
- def __init__(self, parent, title):
- wx.Frame.__init__(self, parent, title=title, size=(200, -1))
- self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
- self.dirname = ""
- self.filename = ""
- self.content = ""
- self.Show()
- # Attribute
- statusBar = self.CreateStatusBar()
- fileMenu = wx.Menu()
- optMenu = wx.Menu()
- openf = fileMenu.Append(wx.ID_OPEN, "Open..", "Open a file")
- exit = fileMenu.Append(wx.ID_EXIT, "Exit", "Quit the program")
- about = optMenu.Append(wx.ID_ABOUT, "About", "About this software")
- # Assign menus to menubar and activate menu bar
- menuBar = wx.MenuBar()
- menuBar.Append(fileMenu, "File")
- menuBar.Append(optMenu, "Option")
- self.SetMenuBar(menuBar)
- # Bind EVT to the menu choices
- self.Bind(wx.EVT_MENU, self.OnOpen, openf)
- self.Bind(wx.EVT_MENU, self.OnExit, exit)
- self.Bind(wx.EVT_MENU, self.OnAbout, about)
- # Setup BoxSizer
- self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
- self.buttons = []
- for i in range(0,6):
- self.buttons.append(wx.Button(self, -1, "Button &"+str(i)))
- self.sizer2.Add(self.button[i], 1, wx.EXPAND)
- # Use some sizers to see layout options
- self.sizer = wx.BoxSizer(wx.VERTICAL)
- self.sizer.Add(self.control, 1, wx.EXPAND)
- self.sizer.Add(self.sizer2, 0, wx.EXPAND)
- # Layout sizers
- self.SetSizer(self.sizer)
- self.SetAutoLayout(1)
- self.sizer.Fit(self)
- #self.Show()
- def OnOpen(self, event):
- self.content = ""
- opendlg = wx.FileDialog(self, "Open a file..", self.dirname, "", "*.*", wx.OPEN)
- if opendlg.ShowModal() == wx.ID_OK:
- self.dirname = opendlg.GetDirectory()
- self.filename = opendlg.GetFilename()
- f = open(os.path.join(self.dirname, self.filename), "r")
- self.content = f.read()
- self.control.SetValue(self.content) # set TextCtrl value
- f.close()
- opendlg.Destroy()
- def OnExit(self, event):
- if self.control.GetValue() != self.content:
- self.control.SaveFile(os.path.join(self.dirname, self.filename))
- self.Destroy()
- def OnAbout(self, event):
- aboutdlg = wx.MessageDialog(self, "This is a free dummy editor.", "About editor", wx.OK)
- aboutdlg.ShowModal()
- aboutdlg.Destroy()
- app = wx.App(True)
- frame = MyFrame(None, title="Editor")
- app.MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement