28
Palestra Tkinter - PUG-PI III Encontro do Python User Group (PUG) do Piauí Palestra: Interface Gráfica com Tkinter Palestrante: Marcos Castro

Construção de interfaces gráficas com Tkinter

Embed Size (px)

DESCRIPTION

Construção de interfaces gráficas utilizando o módulo Tkinter que é o módulo padrão para a construção de GUI's utilizando a linguagem Python. Essa apresentação foi feita no III PUG-PI (Python User Group do Piaui).

Citation preview

Page 1: Construção de interfaces gráficas com Tkinter

Palestra Tkinter - PUG-PI

III Encontro do Python User Group (PUG) do PiauíPalestra: Interface Gráfica com TkinterPalestrante: Marcos Castro

Page 2: Construção de interfaces gráficas com Tkinter

ObjetivosObjetivos da apresentação:

• Introdução ao Tkinter• Conhecer algumas características do Tkinter• Vantagens e desvantagens• Desenvolver um programa usando Tkinter

Page 3: Construção de interfaces gráficas com Tkinter

O que vamos precisar?

• Python 2.7.3• Algum editor (Ex.: Notepad++, Sublime Text 2)

Page 4: Construção de interfaces gráficas com Tkinter

O que é Tkinter?Tkinter é uma biblioteca para interface gráfica.

Interface gráfica serve para que o usuário tenha mais interatividade com o software.

Tkinter é padrão da linguagem Python. Ela é baseada em Tcl (linguagem de programação para scripts).

Page 5: Construção de interfaces gráficas com Tkinter

Usuários WindowsPara usuários Windows, o Tkinter já vem junto ao instalador do Python!

Para testar, abra o cmd, digite python e faça:

• import Tkinter• tk = Tkinter.Tk()

Irá exibir uma janela!

Page 6: Construção de interfaces gráficas com Tkinter

Execução

Page 7: Construção de interfaces gráficas com Tkinter

Usuários LinuxVocê irá precisar fazer o download do Tkinter.

Abra o terminal e digite:

sudo apt-get install python-tk

Page 8: Construção de interfaces gráficas com Tkinter

Linux – Testando...

Page 9: Construção de interfaces gráficas com Tkinter

Vantagens• Portabilidade – programas portáveis entre Linux, Windows e Mac.

• É fácil de aprender, bom para iniciantes.

• Código limpo, boa documentação.

• Vai lhe ajudar quando você for aprender interfaces gráficas mais robustas como PyGTK, PyQt etc.

Page 10: Construção de interfaces gráficas com Tkinter

Desvantagens• Poucos componentes gráficos, mas alguns componentes podem ser feitos combinando outros componentes.

• Aparência diferente da nativa do SO, mas é uma boa interface.

• Desempenho.

Page 11: Construção de interfaces gráficas com Tkinter

Conceitos importantesWidget é um componente de uma interface gráfica.

Exemplos de widgets: botões, barras de rolagem, janelas, menus etc.

Container é onde os widgets irão ficar.

Todo widget tem que está dentro de um container!

Page 12: Construção de interfaces gráficas com Tkinter

Conceitos importantes

Page 13: Construção de interfaces gráficas com Tkinter

Gerenciadores de geometria

Servem para posicionar os widgets.

Se você não utilizar um gerenciador de geometria, o widget não ficará visível ao usuário.

Você tem que indicar uma posição para o widget!

O Tkinter possui 3 gerenciadores: pack, grid e place.

Page 14: Construção de interfaces gráficas com Tkinter

Gerenciadores de geometria

pack: é o mais simples, fácil.

grid: coloca os seus widgets em posições exatas. Um pouco mais complexo.

place: pouco utilizado, exige mais código.

Lei: não misture os gerenciadores de geometria!

Page 15: Construção de interfaces gráficas com Tkinter

Hello World

Page 16: Construção de interfaces gráficas com Tkinter

Botão e Evento de clique

Page 17: Construção de interfaces gráficas com Tkinter

Botão e Evento de cliqueself.btn = Button(self.frame, text="botao")

self.btn = Button(self.frame)self.btn["text"] = "botao"

Page 18: Construção de interfaces gráficas com Tkinter

Execução

Page 19: Construção de interfaces gráficas com Tkinter

packLembra do pack ?

pack é um dos gerenciadores de geometria.

Você poderá utilizar o pack de várias maneiras.

Você pode por exemplo preencher horizontalmente, alinhar um widget à esquerda ou à direita etc.

Page 20: Construção de interfaces gráficas com Tkinter

pack e fillPreenche horizontalmente:

self.btn = Button(self.frame)self.btn.pack(fill=X)

Preenche verticalmente:

self.btn = Button(self.frame)self.btn.pack(fill=Y)

Page 21: Construção de interfaces gráficas com Tkinter

pack e sideServe para alinhar os widgets.

Page 22: Construção de interfaces gráficas com Tkinter

gridgrid é uma alternativa ao pack.

Utilizado em aplicações mais complexas, fornece posições mais exatas.

row: a linha que o widget irá ficarcolumn: a coluna onde o widget irá ficar

Page 23: Construção de interfaces gráficas com Tkinter

grid - Exemplo 1

Page 24: Construção de interfaces gráficas com Tkinter

grid - Exemplo 2

Page 25: Construção de interfaces gráficas com Tkinter

grid - Exemplo 3

Page 26: Construção de interfaces gráficas com Tkinter

Colocando fonte no label

Page 27: Construção de interfaces gráficas com Tkinter

Exemplos de programas