algoritmos e programação - 2016.2 - aula 21
Post on 16-Apr-2017
218 Views
Preview:
TRANSCRIPT
Algoritmos e Programação
Prof.º Thyago Maia
GUI em Python (tkinter)
GUI em Python (tkinter)
• GUI = Graphical User Interface;
• Python provê vários módulos (scripts) para o desenvolvimento de interfaces gráficas;
• Uma das mais importantes é a interface tkinter;– Biblioteca padrão do Python para a programação de
interfaces gráficas;– Provê uma forma rápida e fácil para a criação de aplicações
com GUI; 3
GUI em Python (tkinter)
• Passo a passo para utilizar o tkinter em módulos Python:– Importar o módulo tkinter;– Criar uma janela principal (a janela inicial do
módulo);– Adicionar um ou mais itens (widgets) na janela;– Adicionar um evento de loop principal para obter
ações (eventos) do usuário;– Implementar funções que serão executadas de
acordo com as ações do usuário;4
Exemplo 1 – Criando a Janela Principal
Exemplo 1
• Criando a Janela Principal
6
import tkinter
janela = tkinter.Tk()
janela.mainloop()
Exemplo 1
• Criando a Janela Principal
7
Exemplo 2 – Mudando o Título da Janela Principal
Exemplo 2
• Mudando o Título da Janela Principal
9
import tkinter
janela = tkinter.Tk()janela.title('Bem vindo ao
meu programa!')
janela.mainloop()
Exemplo 2
• Mudando o Título da Janela Principal
10
Exemplo 3 – Mudando o Tamanho da Janela Principal
Exemplo 3
• Mudando o Tamanho da Janela Principal
12
import tkinter
janela = tkinter.Tk()janela.title('Bem vindo ao meu programa!')janela.geometry('800x600')
janela.mainloop()
Exemplo 3
• Mudando o Tamanho da Janela Principal
13
Exemplo 4 – Adicionando Widgets na Janela Principal
Exemplo 4
• Adicionando Widgets na Janela Principal– Rótulo
15
import tkinter
janela = tkinter.Tk()janela.title('Bem vindo ao meu programa!')
rotulo = tkinter.Label(janela, text=‘Olá’)rotulo.pack()
janela.mainloop()
Exemplo 4
• Adicionando Widgets na Janela Principal
16
Exemplo 4• Adicionando Widgets na Janela Principal– Campo de Texto
17
import tkinter
janela = tkinter.Tk()janela.title('Bem vindo ao meu programa!')
rotulo = tkinter.Label(janela, text=‘Digite seu nome:’)
rotulo.pack()
nome = tkinter.Entry(janela)nome.pack()
janela.mainloop()
Exemplo 4
• Adicionando Widgets na Janela Principal
18
Exemplo 4• Adicionando Widgets na Janela Principal– Botão
19
import tkinterjanela = tkinter.Tk()janela.title('Bem vindo ao meu programa!')rotulo = tkinter.Label(janela,
text=‘Digite seu nome:’)rotulo.pack()nome = tkinter.Entry(janela)nome.pack()
botao = tkinter.Button(janela, text=‘Enviar’)botao.pack()
janela.mainloop()
Exemplo 4
• Adicionando Widgets na Janela Principal
20
Exemplo 5 – Adicionando um Evento
Exemplo 5
• Adicionando um Evento– Botão
22
import tkinterjanela = tkinter.Tk()
def clicou():print(‘O usuário clicou no botão!’)
botao = tkinter.Button(janela, text=‘Enviar’, command=clicou)
botao.pack()
janela.mainloop()
Exemplo 5• Adicionando um Evento (Exibindo uma janela de
diálogo)– Botão
23
import tkinterjanela = tkinter.Tk()
def clicou(): tkinter.messagebox.showinfo(‘Mensagem’, ‘Clicou!’)
botao = tkinter.Button(janela, text=‘Enviar’, command=clicou)
botao.pack()
janela.mainloop()
Exemplo 5
• Adicionando um Evento
24
Exemplo 6
25
import tkinterjanela = tkinter.Tk()
rotulo = tkinter.Label(janela, text=‘Nome:’)Rotulo.pack()
nome = tkinter.Entry(janela)nome.pack
def clicou():print(‘Bem vindo, ’ + nome.get())
botao = tkinter.Button(janela, text=‘Enviar’, command=clicou)
botao.pack()
janela.mainloop()
Exercícios
Exercício
• Faça um programa que leia o login e a senha de um usuário a partir de uma GUI. Após clicar no botão “logar”, um evento deverá checar se o login e a senha foram digitados corretamente, exibindo janelas de diálogo para sucesso ou fracasso (considere que o login padrão do sistema é sport e a senha é campeao)
27
Exercício
28
import tkinter
janela = tkinter.Tk()
janela.title('Login')
rotulo_login = tkinter.Label(janela, text='Login:')rotulo_login.pack()login = tkinter.Entry(janela)login.pack()
rotulo_senha = tkinter.Label(janela, text='Senha:')rotulo_senha.pack()senha = tkinter.Entry(janela)senha.pack()
# ...
Exercício
29
# ...
def checaSenha(): if login.get()=='sport' and senha.get()=='campeao': tkinter.messagebox.showinfo('Sucesso',
'Bem vindo ao sistema!') else: tkinter.messagebox.showinfo('Erro',
'Login inválido!')
botao = tkinter.Button(janela, text='Logar', command=checaSenha)
botao.pack()
janela.mainloop()
Explore o assunto!
Explore o assunto!
• Referências
– USING PYTHON. GUI Programming. [Internet]. [citado em 2015 Nov 10]. Disponível em: https://usingpython.com .
31
top related