algoritmos e programação - 2016.2 - aula 21

31
Algoritmos e Programação Prof.º Thyago Maia

Upload: thyago-maia

Post on 16-Apr-2017

218 views

Category:

Education


10 download

TRANSCRIPT

Page 1: Algoritmos e Programação - 2016.2 - Aula 21

Algoritmos e Programação

Prof.º Thyago Maia

Page 2: Algoritmos e Programação - 2016.2 - Aula 21

GUI em Python (tkinter)

Page 3: Algoritmos e Programação - 2016.2 - Aula 21

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

Page 4: Algoritmos e Programação - 2016.2 - Aula 21

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

Page 5: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 1 – Criando a Janela Principal

Page 6: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 1

• Criando a Janela Principal

6

import tkinter

janela = tkinter.Tk()

janela.mainloop()

Page 7: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 1

• Criando a Janela Principal

7

Page 8: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 2 – Mudando o Título da Janela Principal

Page 9: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 2

• Mudando o Título da Janela Principal

9

import tkinter

janela = tkinter.Tk()janela.title('Bem vindo ao

meu programa!')

janela.mainloop()

Page 10: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 2

• Mudando o Título da Janela Principal

10

Page 11: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 3 – Mudando o Tamanho da Janela Principal

Page 12: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 13: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 3

• Mudando o Tamanho da Janela Principal

13

Page 14: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 4 – Adicionando Widgets na Janela Principal

Page 15: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 16: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 4

• Adicionando Widgets na Janela Principal

16

Page 17: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 18: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 4

• Adicionando Widgets na Janela Principal

18

Page 19: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 20: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 4

• Adicionando Widgets na Janela Principal

20

Page 21: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 5 – Adicionando um Evento

Page 22: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 23: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 24: Algoritmos e Programação - 2016.2 - Aula 21

Exemplo 5

• Adicionando um Evento

24

Page 25: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 26: Algoritmos e Programação - 2016.2 - Aula 21

Exercícios

Page 27: Algoritmos e Programação - 2016.2 - Aula 21

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

Page 28: Algoritmos e Programação - 2016.2 - Aula 21

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()

# ...

Page 29: Algoritmos e Programação - 2016.2 - Aula 21

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()

Page 30: Algoritmos e Programação - 2016.2 - Aula 21

Explore o assunto!

Page 31: Algoritmos e Programação - 2016.2 - Aula 21

Explore o assunto!

• Referências

– USING PYTHON. GUI Programming. [Internet]. [citado em 2015 Nov 10]. Disponível em: https://usingpython.com .

31