Python - Interfaces de usuário, parte 2

Índice
Como pudemos ver na primeira parte do tutorial, criar uma janela é bastante simples, nesta segunda parte iremos um pouco mais aprofundando no que deixamos como base e expandindo o código para criar algo com um maior grau de complexidade.
Adicionar um botão
Uma vez que saímos da janela, dentro dela deve haver mais elementos e um dos mais básicos, mas muito importante, é o botão, para adicioná-lo vamos adicionar btn = wx.Button (win) em nosso código, vamos ver:
 import wx app = wx.App () win = wx.Frame (Nenhum) btn = wx.Button (win) win.Show () app.MainLoop () 

Como podemos ver, é praticamente o mesmo código acima, porém incluímos a instrução que adiciona o botão, na imagem podemos ver o resultado:

O resultado não é muito estético já que o botão ocupa toda a janela, mas não devemos desanimar, na próxima seção veremos como controlar isso para gerar um resultado mais agradável aos olhos.
Rótulos e posições
Na seção anterior percebemos que embora seja muito fácil adicionar mais elementos, devemos ser capazes de distribuí-los de forma que a nível gráfico seja coerente com o que queremos alcançar, para isso podemos estabelecer rótulos, tamanhos e posições. para os elementos dentro da janela.
Vamos ver o seguinte código com o resultado correspondente para que possamos analisar e entender melhor o processo.
 import wx app = wx.App () win = wx.Frame (None,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) app.MainLoop () 

Como podemos ver, colocamos um valor no título da janela, como um argumento para o construtor ao instanciar, então criamos dois botões e cada um adicionamos um rótulo ou rótulo, podemos ver o resultado, embora possa não seja o que esperamos:

Na verdade, podemos ver que algo não parece certo e que um dos botões não está visível, isso é porque não especificamos sua posição, portanto, está oculto sob o outro botão.
Vamos corrigir isso com o seguinte código:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), tamanho = (80, 25)) saveButton = wx.Button (win, label = 'Salvar', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), tamanho = (210, 25)) conteúdo = wx.TextCtrl (win, pos = (5, 35), tamanho = (390, 260), estilo = wx.TE_MULTILINE | wx.HSCROLL) app .MainLoop () 

Com este código, além de corrigir o detalhe com as posições dos botões, aproveitamos e adicionamos alguns controles de texto, vamos ver na imagem a seguir como ficaria tudo.

As coisas já estão em melhor forma, porém agora nos perguntamos o que faremos com esta janela, pois na próxima seção iremos definir algumas funcionalidades.
Manipulação de eventos
Usando este tipo de abordagem para criar nossos programas, a visão do que fazemos também muda um pouco, neste caso e as ações que o programa executa vamos chamar de eventos, esses eventos são disparados por ações do usuário, como clicar em um botão, portanto, modificamos um pouco o código para incluir estes eventos:
loadButton.Bind (wx.EVT_BUTTON, carregar)

Essa linha nos faz uma união entre a função load e o elemento, neste caso um botão, então já sabemos que devemos primeiro definir uma função e depois atribuí-la em um evento vinculado a um elemento.
Vamos ver o código final:
 import wx def load (event): file = open (filename.GetValue ()) contents.SetValue (file.read ()) file.close () def save (event): file = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (None ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Abrir') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Salvar') saveButton.Bind (wx.EVT_BUTTON, salvar) filename = wx.TextCtrl (bkg) contents = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (filename, proporção = 1, flag = wx.EXPAND) hbox.Add (loadButton, proporção = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proporção = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporção = 0, sinalizador = wx.EXPAND | wx.ALL, border = 5) vbox.Add (conteúdo, proporção = 1, sinalizador = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

O que este programa faz é editar arquivos de texto de uma forma bastante básica, no entanto, ele nos fez usar muitas funções e aplicativos.
Com isso finalizamos o tutorial, sabendo como usar um conjunto de ferramentas interface do usuário, encorajamos você a investigar os diferentes kits de ferramentas existentes, incluindo aqueles que são exclusivos de um determinado sistema operacional, lembrando que cada ferramenta será útil para nós ocasionalmente.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave