21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Interface Gráfica 229

wx.Frame.__init__(self, parent, id, title)

# Cria o menu arquivo

filemenu = wx.Menu()

# Cria as opções

filemenu.Append(ID_FILE_OPEN, 'Abrir arquivo...')

filemenu.Append(ID_FILE_SAVE, 'Salvar')

filemenu.AppendSeparator()

filemenu.Append(ID_FILE_EXIT, 'Sair')

# Cria o menu ajuda

helpmenu = wx.Menu()

helpmenu.Append(ID_HELP_ABOUT, 'Sobre...')

# Cria o menu

menubar = wx.MenuBar()

menubar.Append(filemenu, 'Arquivo')

menubar.Append(helpmenu, 'Ajuda')

self.SetMenuBar(menubar)

# Associa métodos aos eventos de menu

wx.EVT_MENU(self, ID_FILE_OPEN, self.on_open)

wx.EVT_MENU(self, ID_FILE_SAVE, self.on_save)

wx.EVT_MENU(self, ID_FILE_EXIT, self.on_exit)

wx.EVT_MENU(self, ID_HELP_ABOUT, self.about)

# Cria uma caixa de texto

self.control = wx.TextCtrl(self, 1,

style=wx.TE_MULTILINE)

self.fn = ''

def on_open(self, evt):

# Abre uma caixa de dialogo escolher arquivo

dialog = wx.FileDialog(None, style=wx.OPEN)

d = dialog.ShowModal()

if d == wx.ID_OK:

# Pega o arquivo escolhido

self.fn = dialog.GetPath()

# Muda o título da janela

self.SetTitle(self.fn)

# Carrega o texto na caixa de texto

self.control.SetLabel(file(self.fn, 'rb').read())

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!