- Acesse esse conteúdo pelo computador, celular, tablet etc e estude pelo PDF por onde quiser: Apostila de Python
Eventos <Enter> e <Leave> de botões
Vamos usar dois eventos:
- <Enter> : Quando você passa o mouse por cima do botão
- <Leave>: Quando você tira o mouse de cima do botão
Vamos fazer dois binds:
- Com o evento <Enter>, que chama o método passou_por_cima
- Com o evento <Leave>, que chama o método saiu_de_cima
Ou seja, quando você passa o mouse por cima do botão, um event handler é acionado.
Quando você tira o mouse de cima, outro event handler é acionado.
Não devemos esquecer de passar o objeto event para estes métodos de tratamento, é lá que vamos usar o método widget.config() para alterar o relevo do botão.
Esses métodos de tratamento de evento vão simplesmente mudar a textura do botão.
Quando passa o mouse por cima, temos o estilo GROOVE (de entrar, simulando o botão entrando.
Quando tiramos o mouse de cima, acionamos o estilo RAISED (de levantar o botão que tava pra dentro).
E quando apertamos o botão, o método apertou é acionado.
Veja como fica nosso código:
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()
E o resultado:
Exercício de GUI
Crie um programa em GUI que exibe 5 botões.
Quando for criar os objetos do tipo Button, passe o parâmetro relief=ESTILO, onde ESTILO pode ser:
FLAT
RAISED
SUNKEN
GROOVE
RIDGE
E veja a diferença no estilo de botões.
Alguém pode dar um resuminho nos comentários, explicando como fica cada estilo ?
FLAT - Fica apenas o texto, sem bordas
ResponderExcluirRAISED - Fica normal, com aquela borda sombreada
SUNKEN - Fica como se tivesse apertado, mas com profundidade
GROOVE - Fica com borda, porém não sombreada
RIDGE - Uma borda branca