Visual – PopUpMenu – Tkinter – Python – Linux

Publicado: 28 de março de 2014 em Python

PopUpMenu

Um menu de contexto ou um menu pop-up é um menu em uma interface gráfica do usuário (GUI) que aparece em cima de interação do usuário, como uma operação de clique com o botão direito do mouse. Um menu de contexto oferece um conjunto limitado de opções que estão disponíveis no estado atual, ou contexto, do sistema operacional ou aplicativo. Normalmente, as opções disponíveis são as ações relacionadas com o objeto selecionado.

Os menus de contexto foram introduzidos no ambiente Smalltalk do computador Xerox Alto, onde eram chamados menus pop-up. O sistema operacional NEXTSTEP desenvolveu a ideia, incorporando a funcionalidade em que o botão do meio ou o da direita traziam o menu principal na posição do mouse, eliminando a necessidade de mover o ponteiro por toda a tela. Esse menu principal era vertical e mudava de acordo com o texto da operação do sistema.

popupmenu

PopUpMenu – Python

Exemplo:

Neste exemplo criamos um PopUpMenu usando o widget Menu do Tkinter e usamos o método bind do Tk referenciando o terceiro botão do mouse (botão direito) criando o efeito de um menu de contexto.

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# PopupMenu.py

# importa modulo 

from Tkinter import *

# Cria formulario
formulario = Tk()
formulario.title = "Desenvolvimento Aberto"

# Declara variaves do label
txt = StringVar()
msg = "Voce clicou no: "

# Declara eventos dos itens do menu
def menu1_1():
    txt.set(msg + "Menu 1, item 1")
    
def menu1_2():
    txt.set(msg + "Menu 1, item 2")    
    
def menu1_3():
    txt.set(msg + "Menu 1, item 3")  
    
def popup(event):
    PopUpMenu.post(event.x_root, event.y_root)
    
    

# Declara label
titulo = Label(formulario, text="Clique com o botao direito do mouse")
texto = Label(formulario, textvariable= txt )

# Declara menu
PopUpMenu = Menu(formulario, tearoff=0)

# Cria itens do menu
PopUpMenu.add_command(label = "Item1", command = menu1_1)
PopUpMenu.add_command(label = "Item2", command = menu1_2)   
PopUpMenu.add_separator() 
PopUpMenu.add_command(label = "Item3", command = menu1_3)    

# Adiciona tamanho do formulario
formulario.geometry("300x200")

# Adiciona evento do botão direito do mouse
formulario.bind("<Button-3>", popup)

# Cria layout do formulario
titulo.grid(row=0, sticky=W, padx=40)
texto.grid(row=1, sticky=W, padx=40, pady=160)

# Loop principal do tcl
mainloop()
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s