You are on page 1of 5

Fechar Pub

Python Progressivo
Curso de Python completo, online e grátis

Sumário Básico Teste Condicional Laços e Loopings Função e Módulo Sequências Arquivos Strings

Orientação a Objetos GUI Tutoriais Apostila de Python Contato >>> Quer nos ajudar? <<<

Obtenha aqui seu certificado do Curso Python Progressivo e entre para o mercado de trabalho

Apostila Python Progressivo Ajude nosso projeto a se manter online, faça um PIX de qualquer valor:

programacao.progressiva@gmail.com

Gerenciador de Layout: Pack, Grid e Place


Neste tutorial de programação gráfica em Python, vamos aprender melhor como
gerenciar o layout de nossos programas de interface gráfica.

Ler esse conteúdo em PDF: Apostila de Python

Gerenciadores de Layout
Como já aprendemos a usar botões,
caixa de entrada, caixa de diálogo,
radio e checkbuttons, bem como
tratar diversos eventos, chegou a
hora de aprender como organizar
Apostila de Python

melhor esse amontado de widgets!


incríveis 482 páginas

melhor investimento de sua vida,


Você deve ter notado que fomos
se não concordar, devolvemos seu
dinheiro adicionando botões, labels...e eles
atualizado para 2021 foram se encaixando em um canto,
em outro...se você é dos que gosta
de fuçar, certamente mexeu e viu
Livro impresso widgets sumirem, ou ficarem
desalinhados, feios etc.

Os gerenciadores de layout servem para definirmos melhor o posicionamento de


nossos widgets em containers (janelas Tk() ou Frame() por exemplo), de modo a
organizar e deixar eles esteticamente melhores.

Existem três principais gerenciadores de layout:

1. pack - vai adicionando os widgets na ordem que forem sendo empacotados


2. grid - adiciona através de posições de linhas e coluna, como uma tabela ou
grade (grid)
3. place - adiciona widgets em posições específicas, com tamanhos específicos

Gerenciador de Layout: pack


O gerenciador pack é o que vinhamos usando, no decorrer de nossos tutoriais de


programação gráfica em Python, e é o mais básico.

Por padrão, ele vai adicionando os widgets na ordem quem forem empacotados
(chamando o método pack() ), de cima pra baixo.

Porém, existem várias opções para empacotar os componentes:

Dia dos Pais O Boticário


Obter livro impresso

Certificado do Python O Boticário


Progressivo

side - indica de que lado você quer que seja adicionado (TOP, BOTTOM,
LEFT e RIGHT). Se quer um alinhamento horizontal, use side=LEFT, por
exemplo
fill - para preencher um espaço. Pode usar como argumneto X, Y ou
BOTH, e ele vai cobrir todo o espaçamento horizontal (X), vertical (Y) ou
ambos (BOTH)
expand - pode passar como YES ou NO, para definir se o widget vai
preencher todo o espaço extra do container ou não.
padx e pady - preenchem o ao redor do widget com espaço em branco
pack_forget - retira um widget empacotado do container que foi inserido
anteriormente
Estude o seguinte código, rode o script e veja o resultado você mesmo:

from tkinter import *

class PackDemo( Frame ):

def __init__(self):

# Inicializando o frame

Frame.__init__(self)

self.master.title("Gerenciador pack")

self.master.geometry( "600x250" )

self.pack( expand = YES, fill = BOTH)

# Botao que adiciona outros, no topo

self.botao1 = Button(self, text = "Adicionar Botão",

command = self.adicionarBotao)

self.botao1.pack(side = TOP)

# Botão 2, no fundo e preenche X e Y

self.botao2 = Button(self,

text = "expand = NO, fill = BOTH")

self.botao2.pack( side = BOTTOM, fill = BOTH )

# Botão3: na esquerda, fill só na horizontal

self.botao3 = Button( self, text = "expand = YES, fill = X" )

self.botao3.pack( side = LEFT, expand = YES, fill = X )

# Botão4: na direita, fill só na vertical

self.botao4 = Button( self, text = "expand = YES, fill = Y" )

self.botao4.pack( side = RIGHT, expand = YES, fill = Y )

mainloop()

def adicionarBotao( self ):

Button(self, text = "Botão novo" ).pack(pady = 5)

PackDemo()

Gerenciador de Layout: grid


Como o nome sugere, ele vai dividir o container em uma grade (grid em inglês), assim
podemos posicionar os elementos dividino o Frame, por exemplo, em x linhas e y
linhas.

Cada posição é chamada de célula, ou seja, cada célular é composta por um valor de
linha, um valor de coluna e pode ter um widget

A primeira linha (row) é a 0, a segunda coluna é a de número 1, a terceira é de


número 2...
A primeira coluna (column) é a 0, a segunda é a 1, a terceira é a 2...

Galeria de Arte
Fite Art Ltda

Definimos a posição de cada widget com o método grid(), que recebe os parâmetros
row e column, com a respectiva posição e numeração de cada linha e coluna.

Tutorial de Python Vamos, por exemplo, cria 9 labels, e exibir eles numa grid três por três, ou seja, 3
linhas e 3 colunas.
Primos em Python - O código é o seguinte:
Como Saber se um

Número é Primo ?
Neste nosso Tutorial from tkinter import *

de Python , vamos

falar sobre os números primos.


Vamos te explicar o que é, sua
class Grid( Frame ):

importância, onde são usados e o def __init__(self):

prin... # Inicializando o frame

Frame.__init__(self)

Par ou Ímpar em
Python (e outros
self.master.title("Grid")

múltiplos) self.master.geometry( "80x80" )

Neste tutorial de

nosso Curso de # Criando os labels e adicionando

Python Online Grátis , vamos fazer


# com o método grid()

um script que diz se o número


digitado pelo usuário é par ou for linha in range(3):

ímpar. Va... for coluna in range(3):

Label(self.master, text=str(linha)+','+str(coluna)).grid(row=linha,column=col
Formatando números

na função print
Você foi contratado mainloop()

pela Caixa Econômica

Federal para atualizar Grid()

seu sistema. Como primeira tarefa,


você vai criar um script que diga

quanto...
E o resultado:
Calculando

Porcentagem em
Python (Exercícios
resolvidos)
Exercício 01 de
Porcentagem em Python Ao
terminar o Curso Python
Progressivo , você foi disputado a
tapa por várias empresas, e uma

grande...
Veja, o primeiro label é o da posição 0,1
Série de Fibonacci em O segundo, na primeira linha e segunda coluna é 0,1
Python - Como Fazer Na primeira linha e terceira coluna temos o 0,2
a Sequência E assim vai...tente ver uma 'tabela', uma 'grade' ao usar o grid.
Neste tutorial, de

nossa Apostila de
Python , vamos te explicar o que é Sempre que quiser dispor seus elementos, alinhados por linhas e colunas, use o grid.
a famosa sequência de Fibonacci, Um exemplo comum de programas que usam, são os que tem algum formulário, veja:

como é formada e como fazer a


sequê...

Lista de Exercícios de Laços e


Loops
Lista de exercícios, resolvidos e
com código comentado, sobre os

laços e loops WHILE e FOR. Tente


resolver as questões a seguir após Veja como fica bem alinhado e bonitinho.
estud... O código pra fazer isso é:

Jogo da Velha em Python: Como


Programar from tkinter import *

Neste tutorial de Python , vamos te

mostrar como criar e programar o


jogo da velha em Python, para dois
class Grid( Frame ):

usuários jogarem. Jogo da Velha def __init__(self):

e... # Inicializando o frame

Frame.__init__(self)

Como calcular Fatorial em Python


self.master.title("Grid")

Neste tutorial de nosso Curso de


Python Online Grátis , vamos te

ensinar o que é o número fatorial, Label(self.master, text="Nome").grid(row=0)

para que serve, e como Label(self.master, text="Sobrenome").grid(row=1)

implementar ele t...


Operadores Lógicos - AND, OR e entrada1 = Entry(self.master)

NOT entrada2 = Entry(self.master)

Até o momento, em nossos testes

condicionais, fizemos apenas um entrada1.grid(row=0, column=1)

teste em cada instrução IF . Porém,


é possível fazermos vários testes,
entrada2.grid(row=1, column=1)

em ...

mainloop()

Função que mostra Maior e Menor

número em Python
Grid()

Neste tutorial de nosso Curso


Python Progressivo , vamos
resolver uma questão da lista de

exercícios sobre funções . Leia Note que quando omitimos alguma opção row ou column, é porque o valor padrão é 0.
também: Certif... Para se aprofundar melhor no manager grid, sugerimos pesquisar mais sobre a opção
sticky, os métodos rowconfigure e columnconfigure.

Gerenciador de Layout: place
Esse gerenciador não é tão usado, mas é simples de usar, pois basta dizer onde quer
inserir cada widget. Pronto.

Porém, isso complica um pouco as coisas.


Note que o pack e o grid faz muita coisa por você, automaticamente, você se estressa
com pouca coisa.

O place é mais 'rigoroso', digamos assim, você precisa 'cravar' locais, saber
exatamente onde vai cada coisa, até onde, até que altura, até que largura etc. Não
vamos nos aprofundar nele.

Para fazer um programa com essa cara:


Curso de C
Rode este código Python:
Curso de Java

Curso de HTML+CSS

Curso de JavaScript
from tkinter import *

Curso de C++

Curso de PHP
class Place( Frame ):

def __init__(self):

top = Tk()

top.title("place")

top.geometry("250x200")

# Label e primeira entrada

label1 = Label(top, text = "Nota 1")

label1.place(x = 10,y = 10)

entrada1 = Entry(top, bd = 5)

entrada1.place(x = 60,y = 10)

# Label e segunda entrada

label2 = Label(top,text = "Nota 2")

label2.place(x = 10,y = 50)

entrada2 = Entry(top,bd = 5)

entrada2.place(x = 60,y = 50)

# Label e terceira entrada

label3 = Label(top,text = "Média")

label3.place(x = 10,y = 150)

entrada3 = Entry(top,bd = 5)

entrada3.place(x = 60,y = 150)

# Botão

botao = Button(top, text = "Calcular")

botao.place(x = 100, y = 100)

top.mainloop()

Place()

Marcadores:
Curso de Python,
Gerenciador de Layout,
Graphical User Interface,
grid,
GUI,
Interface
gráfica,
Layout,
Layout Managers,
pack,
placa

Nenhum comentário:

Postar um comentário

Digite um comentário

Postagem mais recente Página inicial Postagem mais antiga

Assinar:
Postar comentários (Atom)

Tecnologia do Blogger.

You might also like