-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp-v1-hello_world.py
More file actions
98 lines (76 loc) · 3.43 KB
/
app-v1-hello_world.py
File metadata and controls
98 lines (76 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import wx
class HelloFrame(wx.Frame):
""" Um Hello World mais robusto """
def __init__(self, *args, **kw):
# garantir que o __init__ será chamado
super(HelloFrame, self).__init__(*args, **kw)
# criar o frame do painel
painel = wx.Panel(self)
# colocar e configurar o texto
texto = wx.StaticText(painel, label='Hello World')
fonte = texto.GetFont()
fonte.PointSize += 10
fonte = fonte.Bold()
texto.SetFont(fonte)
# criar o tamanho para gerenciar o layout dos widgets filhos
tamanho = wx.BoxSizer(wx.VERTICAL)
tamanho.Add(texto, wx.SizerFlags().Border(wx.TOP|wx.LEFT, 25))
painel.SetSizer(tamanho)
# criar uma barra de menu
self.makeMenuBar()
# criar uma barra de status
self.CreateStatusBar()
self.SetStatusText('Primeira interface com wxPython!')
def makeMenuBar(self):
"""
Uma barra de menu composta por itens de menu.
Esse metodo constroi um conjunto de menus e cria links para serem
chamados quando clicados
"""
# criar um menu 'arquivo' com Olá e Sair como itens
menuArquivo = wx.Menu()
# criar o menu Olá e definir um label para ele
# - o '\t' define um comando de teclado que aciona o mesmo evento
itemOla = menuArquivo.Append(-1, '&Olá!\tCtrl-O')
menuArquivo.AppendSeparator()
# criar o menu Sair, nesse caso nao precisa criar um label por ser um
# ID padrão da biblioteca 'ID_EXIT'
# itemSair = menuArquivo.Append(wx.ID_EXIT) # item de menu padrao simples
itemSair = menuArquivo.Append(wx.ID_EXIT, '&Sair\tCtrl+Q') # adiciona o atalho e o label para o item de menu
# criar o menu 'ajuda' com o item 'sobre'
menuAjuda = wx.Menu()
itemSobre = menuAjuda.Append(wx.ID_ABOUT)
# criar a barra do menu e incluir os menus
# o '&' define que a proxima letra é o 'mnemonic' para o item menu
barraMenu = wx.MenuBar()
barraMenu.Append(menuArquivo, '&Arquivo')
barraMenu.Append(menuAjuda, 'Aju&da')
# colocar a barra de menu no frame
self.SetMenuBar(barraMenu)
# associe uma função manipuladora ao evento EVT_MENU para cada um dos
# itens de menu. Isso significa que quando esse item de menu for
# ativado, a função de manipulador associada será chamada.
self.Bind(wx.EVT_MENU, self.OnHello, itemOla)
self.Bind(wx.EVT_MENU, self.OnExit, itemSair)
self.Bind(wx.EVT_MENU, self.OnAbout, itemSobre)
# associando os itens aos eventos correspondentes
def OnExit(self, event):
""" fecha o frame terminando a aplicacao """
self.Close(True)
def OnHello(self, event):
""" diz ola para o usuario """
# wx.MessageBox('Hello World com wxPython') # caixa de mensagem simples
wx.MessageBox('Hello World com wxPython',
'Arquivo - Hello World 2',
wx.OK|wx.ICON_INFORMATION) # com titulo na caixa de mensagem
def OnAbout(self, event):
""" mostra um dialogo Sobre """
# abre a caixa de mensagem com o texto (1) e titulo na caixa (2)
wx.MessageBox('Este é um exemplo de Hello World',
'Sobre - Hello World 2',
wx.OK|wx.ICON_INFORMATION)
if __name__ == '__main__':
app = wx.App()
frame = HelloFrame(None, title='Hello World 2')
frame.Show()
app.MainLoop()