algoritmos e programação - 2016.2 - aula 21

Post on 16-Apr-2017

218 Views

Category:

Education

10 Downloads

Preview:

Click to see full reader

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