Que tal apoiar e fazer crescer o ensino da programação no Brasil ?
Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?
Clica abaixo pra saber mais!
Curso de Python completo, online e grátis
Que tal apoiar e fazer crescer o ensino da programação no Brasil ?
Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?
Clica abaixo pra saber mais!
![]() |
Quem usa Python? |
![]() |
Clique aqui, obtenha seu certificado Python Progressivo e entre no mercado de trabalho |
![]() |
Clique aqui e obtenha sua certificação para trabalhar como Programador Python |
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()
from tkinter import * class Grid( Frame ): def __init__(self): # Inicializando o frame Frame.__init__(self) self.master.title("Grid") self.master.geometry( "80x80" ) # Criando os labels e adicionando # com o método grid() for linha in range(3): for coluna in range(3): Label(self.master, text=str(linha)+','+str(coluna)).grid(row=linha,column=coluna) mainloop() Grid()
from tkinter import * class Grid( Frame ): def __init__(self): # Inicializando o frame Frame.__init__(self) self.master.title("Grid") Label(self.master, text="Nome").grid(row=0) Label(self.master, text="Sobrenome").grid(row=1) entrada1 = Entry(self.master) entrada2 = Entry(self.master) entrada1.grid(row=0, column=1) entrada2.grid(row=1, column=1) mainloop() Grid()
from tkinter import * 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()
from tkinter import * class KeyboardEvent(Frame): def __init__(self): Frame.__init__(self) self.pack(expand=YES, fill=BOTH) self.master.title("Eventos de teclado") self.master.geometry("250x50") # Label e Stringvar que vao exibir a tecla self.mensagem = StringVar() self.label = Label(self, textvariable = self.mensagem) self.mensagem.set("Aperte uma tecla" ) self.label.pack() # Fazendo os binding no frame self.master.bind( "<KeyPress>", self.teclaPressionada ) self.master.bind( "<KeyRelease>", self.teclaLiberada ) self.master.bind( "<KeyPress-Alt_L>", self.altPressionado ) self.master.bind( "<KeyRelease-Alt_L>", self.altLiberado ) mainloop() def teclaPressionada( self, event ): self.mensagem.set( "Tecla pressionada: " + event.char ) def teclaLiberada( self, event ): self.mensagem.set( "Tecla solta: " + event.char ) def altPressionado( self, event ): self.mensagem.set( "Alt pressionado" ) def altLiberado( self, event ): self.mensagem.set( "Alt liberado" ) # Chamando a classe KeyboardEvent()
from tkinter import * class MouseEvent( Frame ): def __init__( self ): # Criando o frame, título e tamanho Frame.__init__( self ) self.pack( expand = YES, fill = BOTH ) self.master.title( "Eventos com Mouse" ) self.master.geometry( "300x200" ) # String com a posição do mouse self.mousePosicao = StringVar() self.mousePosicao.set( "Mouse fora da janela" ) # Criando e posicionando o label embaixo self.positionLabel = Label( self,textvariable = self.mousePosicao ) self.positionLabel.pack( side = BOTTOM ) # Criando os binds com os eventos de mouse self.bind( "<Button-1>", self.botaoPressionado ) self.bind( "<ButtonRelease-1>", self.botaoLiberado ) self.bind( "<Enter>", self.entrouJanela ) self.bind( "<Leave>", self.saiuJanela ) self.bind( "<B1-Motion>", self.mouseArrastado ) mainloop() def botaoPressionado( self, event ): self.mousePosicao.set( "Pressionado em [ " + str( event.x ) + ", " + str( event.y ) + " ]" ) def botaoLiberado( self, event ): self.mousePosicao.set( "Solto em [ " + str( event.x ) + ", " + str( event.y ) + " ]" ) def entrouJanela( self, event ): self.mousePosicao.set( "Mouse na janela ) def saiuJanela( self, event ): self.mousePosicao.set( "Mouse fora da janela" ) def mouseArrastado( self, event ): self.mousePosicao.set( "Arrastado até [ " + str( event.x ) + ", " + str( event.y ) + " ]" ) # Chamando a classe MouseEvent()
from tkinter import * from tkinter import messagebox class ButtonEvent( Frame ): def __init__( self ): Frame.__init__( self ) self.pack() self.master.title( "Botão" ) self.master.geometry("120x40") # Criando botão self.botao = Button( self, text = "Clique aqui", command = self.apertou ) self.botao.bind( "<Enter>", self.passou_por_cima ) self.botao.bind( "<Leave>", self.saiu_de_cima) self.botao.pack( side = LEFT, padx = 5, pady = 5 ) mainloop() def apertou( self ): messagebox.showinfo( "Messagem", "Você apertou o botão" ) def passou_por_cima( self, event ): event.widget.config( relief = GROOVE ) def saiu_de_cima( self, event ): event.widget.config( relief = RAISED ) # Chamando a classe ButtonEvent()
from tkinter import * from tkinter import messagebox class EntryTeste( Frame ): def __init__( self ): # Inicializando configurações do frame Frame.__init__(self) self.pack() self.master.title( "<Return> teste" ) self.master.geometry( "300x50" ) self.frame = Frame( self ) self.frame.pack( pady = 5 ) # Criando a caixa de entrada self.caixa = Entry( self.frame, name = "caixa1" ) # Fazendo o bind dela com o event handler exibe() self.caixa.bind( "<Return>", self.exibe ) self.caixa.pack( side = LEFT, padx = 5 ) # Looping pra rodar a GUI self.mainloop() # Event handler def exibe(self, event): nomeCaixa = event.widget.winfo_name() conteudoCaixa = event.widget.get() messagebox.showinfo( "Texto na caixa", "Nome do widget: " + nomeCaixa + "\nConteúdo: " + conteudoCaixa ) # Criando um objeto minhaGui = EntryTeste()
from tkinter import * from tkinter import messagebox class EntryTeste( Frame ): def __init__( self ): # Inicializando os frames, títulos e tamanhos Frame.__init__( self ) self.pack( expand = YES, fill = BOTH ) self.master.title( "Componentes de entrada" ) self.master.geometry( "325x100" ) # width x length # Criando o primeiro frame que vai armazenar # as duas primeiras caixas de entrada self.frame1 = Frame( self ) self.frame1.pack( pady = 5 ) # Criando a primeira caixa de entrada self.text1 = Entry( self.frame1, name = "caixa1" ) # Associando o evento <Return> com o # event handler exibe() self.text1.bind( "<Return>", self.exibe ) self.text1.pack( side = LEFT, padx = 5 ) # Criando a segunda caixa e seu bind self.text2 = Entry( self.frame1, name = "caixa2" ) self.text2.insert( INSERT, "Digite um texto aqui" ) self.text2.bind( "<Return>", self.exibe ) self.text2.pack( side = LEFT, padx = 5 ) # Segundo frame, com as duas outras caixas self.frame2 = Frame( self ) self.frame2.pack( pady = 5 ) # Criando a caixa que não dá pra editar self.text3 = Entry( self.frame2, name = "caixa3" ) self.text3.insert( INSERT, "Texto ineditável" ) self.text3.config( state = DISABLED ) self.text3.bind( "<Return>", self.exibe ) self.text3.pack( side = LEFT, padx = 5 ) # Criando a caixa estilo senha self.text4 = Entry( self.frame2, name = "caixa4", show = "*" ) self.text4.insert( INSERT, "Texto escondido" ) self.text4.bind( "<Return>", self.exibe ) self.text4.pack( side = LEFT, padx = 5 ) mainloop() def exibe( self, event ): # Pegando o nome do widget nomeCaixa = event.widget.winfo_name() # Pegando o conteúdo do widget conteudoCaixa = event.widget.get() messagebox.showinfo( "Texto na caixa", nomeCaixa + ": " + conteudoCaixa ) # Chamando a classe EntryTeste()