Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Programando em Python - Interfaces Graficas com Tk, Notas de estudo de Informática

Tkinter interfaces graficas

Tipologia: Notas de estudo

2011

Compartilhado em 25/03/2011

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 92

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Claudio Esperança
Python:
Interfaces Gráficas com Tk
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c

Pré-visualização parcial do texto

Baixe Programando em Python - Interfaces Graficas com Tk e outras Notas de estudo em PDF para Informática, somente na Docsity!

Claudio Esperança

Python:

Interfaces Gráficas com Tk

Interfaces Gráficas

 Também chamadas de Graphical User Interfaces (GUI)

 Usadas em aplicações modernas que requerem uma interação

constante com o usuário

 Maior usabilidade e naturalidade do que interfaces textuais

 Aplicação apresenta uma ou mais janelas com elementos

gráficos que servem para comandar ações, especificar

parâmetros, desenhar e exibir gráficos, etc

 Bibliotecas (toolkits) para construção de interfaces como

 Qt

 Gtk

 wxWindows

 Tk

Tk

 Toolkit originalmente criado para utilização com a

linguagem script Tcl

 Bastante leve, portátil e robusto

 Um tanto obsoleto frente a outros toolkits mais modernos

como Qt ou Gtk

 Camada Tkinter normalmente distribuída com o Python

 Inicia um processo Tcl que toma conta dos elementos de interface  Classes e funções do Tkinter se comunicam com o interpretador Tcl para especifcar aspecto e comportamento da interface

Usando Tkinter

 Importar o módulo Tkinter

 from Tkinter import *

 Elementos de interface ( widgets ) correspondem a objetos

de diversas classes. Por exemplo:

 Frame (Área retangular)  Button (botão)  Label (rótulo)  Text (caixa de texto)  Canvas (caixa de desenho)

 Posição e tamanho dos elementos controlados por

gerentes de geometria

 Pack (mais comum), Place, Grid

Exemplo

from Tkinter import *

class Application(Frame):

def init(self, master=None): Frame.init(self, master) self.msg = Label(self, text="Hello World") self.msg.pack () self.bye = Button (self, text="Bye", command=self.quit) self.bye.pack () self.pack()

app = Application()

mainloop()

Exemplo

from Tkinter import *

class Application(Frame):

def init(self, master=None): Frame.init(self, master) self.msg = Label(self, text="Hello World") self.msg.pack () self.bye = Button (self, text="Bye", command=self.quit) self.bye.pack () self.pack()

app = Application()

mainloop()

Classes de componentes

 Button Um botão simples usado para executar um comando

 Canvas Provê facilidades de gráficos estruturados

 Checkbutton Representa uma variável que pode ter dois

valores distintos (tipicamente um valor booleano). Clicando no botão alterna-se entre os valores

 Entry Um campo para entrada de uma linha de texto

 Frame Usado como agrupador de widgets

 Label Mostra um texto ou uma imagem

 Listbox Mostra uma lista de alternativas. Pode ser

configurado para ter comportamento de checkbutton ou radiobutton

Classes de componentes (cont.)

 Menu Um painel de menu. Implementa menus de janela, pulldowns e

popups

 Message Similar ao widget Label, mas tem mais facilidade para

mostrar texto quebrado em linhas

 Radiobutton Representa um possível valor de uma variável que

tem um de muitos valores. Clicando o botão, a variável assume

aquele valor

 Scale Permite especificar um valor numérico através de um ponteiro

em uma escala linear

 Scrollbar Barra de rolamento para widgets que têm superfície útil

variável (Text, Canvas, Entry, Listbox)

 Text Exibe e permite editar texto formatado. Também suporta

imagens e janelas embutidas

 Toplevel Uma janela separada

Exemplo

from Tkinter import *

class Application(Frame):

def init(self, master=None): Frame.init(self, master) self.msg = Label(self, text="Hello World") self.msg.pack () self.bye = Button (self, text="Bye", command=self.quit) self.bye.pack () self.pack()

app = Application()

app.master.title("Exemplo")

app.master.geometry("200x200+100+100")

mainloop()

Opções de Widgets

 Widgets (elementos de interface) têm opções com

nomenclatura unificada. Ex.:

 text Texto mostrado no elemento  background cor de fundo  foreground cor do texto  font fonte do texto  relief relevo da borda ('flat', 'raised', 'ridge', 'sunken', 'groove')

 Opções são especificadas

 No construtor  Através do método configure

O método configure

 Usado com pares do tipo opção=valor , modifica os valores dos

atributos

 Usado com uma string “ nomeopção” retorna a configuração da

opção com esse nome

 A configuração é uma tupla com 5 valores

 nome do atributo

 nome do atributo no banco de dados (X11)

 nome da classe no banco de dados (X11)

 objeto que representa a opção

 valor corrente da opção

 Se configure é usado sem argumentos, retorna um

dicionário com todas as opções

 Pode-se obter diretamente o valor de uma opção usando

o método cget

Exemplo

>>> rotulo.configure(relief="ridge")

>>> rotulo.configure("relief")

('relief', 'relief', 'Relief', <index object at

0x85f9530>, 'ridge')

>>> rotulo.configure()["relief"]

('relief', 'relief', 'Relief', <index object at

0x85f9530>, 'ridge')

>>> rotulo.configure("relief")[4]

'ridge'

>>> rotulo.cget("relief")

'ridge'

Usando o pack

 Para informar que um elemento deve ser gerenciado pelo

pack, use o método pack ( opções )

 O pack considera o espaço do elemento “pai” como uma

cavidade a ser preenchida pelos elementos filhos

 O algoritmo usado pelo pack consiste em empacotar os

filhos de um elemento “pai” segundo o lado (side)

especificado

 Os lados possíveis são 'top', 'left', 'right' e 'bottom'  Deve-se imaginar que sempre que um elemento filho escolhe um lado, a cavidade disponível fica restrita ao lado oposto

Exemplo

from Tkinter import *

top = Frame() ; top.pack()

a = Label (top, text="A") ; a.pack (side="left")

b = Label (top, text="B") ; b.pack (side="bottom")

c = Label (top, text="C") ; c.pack (side="right")

d = Label (top, text="D") ; d.pack (side="top")

for widget in (a,b,c,d):

widget.configure(relief="groove", border=10,

font="Times 24 bold")

top.mainloop()