Python - Menu Tkinter
O objetivo deste widget é nos permitir criar todos os tipos de menus que podem ser usados por nossos aplicativos. A funcionalidade principal fornece maneiras de criar três tipos de menu: pop-up, nível superior e pull-down.
Também é possível usar outros widgets estendidos para implementar novos tipos de menus, como o widget OptionMenu , que implementa um tipo especial que gera uma lista pop-up de itens em uma seleção.
Sintaxe
Aqui está a sintaxe simples para criar este widget -
w = Menu ( master, option, ... )
Parâmetros
master - Isso representa a janela pai.
options- Aqui está a lista das opções mais comumente usadas para este widget. Essas opções podem ser usadas como pares de valores-chave separados por vírgulas.
Sr. Não. | Descrição |
---|---|
1 | activebackground A cor de fundo que aparecerá em uma escolha quando estiver sob o mouse. |
2 | activeborderwidth Especifica a largura de uma borda desenhada ao redor de uma escolha quando ela está sob o mouse. O padrão é 1 pixel. |
3 | activeforeground A cor de primeiro plano que aparecerá em uma opção quando ela estiver sob o mouse. |
4 | bg A cor de fundo para opções que não estão sob o mouse. |
5 | bd A largura da borda em torno de todas as opções. O padrão é 1. |
6 | cursor O cursor que aparece quando o mouse está sobre as opções, mas apenas quando o menu é retirado. |
7 | disabledforeground A cor do texto para itens cujo estado é DESATIVADO. |
8 | font A fonte padrão para escolhas textuais. |
9 | fg A cor de primeiro plano usada para opções que não estão sob o mouse. |
10 | postcommand Você pode definir essa opção como um procedimento, e esse procedimento será chamado toda vez que alguém abrir esse menu. |
11 | relief O efeito 3-D padrão para menus é relevo = ELEVADO. |
12 | image Para exibir uma imagem neste menu. |
13 | selectcolor Especifica a cor exibida nos botões de seleção e de opção quando eles são selecionados. |
14 | tearoff Normalmente, um menu pode ser retirado, a primeira posição (posição 0) na lista de opções é ocupada pelo elemento destacável e as opções adicionais são adicionadas a partir da posição 1. Se você definir tearoff = 0, o menu não terá um recurso de destaque e as opções serão adicionadas a partir da posição 0. |
15 | title Normalmente, o título de uma janela destacável do menu será o mesmo que o texto do menu ou cascata que leva a este menu. Se você quiser alterar o título dessa janela, defina a opção de título para essa string. |
Métodos
Esses métodos estão disponíveis em objetos de Menu -
Sr. Não. | Opção e descrição |
---|---|
1 | add_command (options) Adiciona um item de menu ao menu. |
2 | add_radiobutton( options ) Cria um item de menu de botão de rádio. |
3 | add_checkbutton( options ) Cria um item de menu do botão de verificação. |
4 | add_cascade(options) Cria um novo menu hierárquico associando um determinado menu a um menu pai |
5 | add_separator() Adiciona uma linha separadora ao menu. |
6 | add( type, options ) Adiciona um tipo específico de item de menu ao menu. |
7 | delete( startindex [, endindex ]) Exclui os itens de menu que vão de startindex a endindex. |
8 | entryconfig( index, options ) Permite que você modifique um item de menu, que é identificado pelo índice, e altere suas opções. |
9 | index(item) Retorna o número do índice do rótulo do item de menu fornecido. |
10 | insert_separator ( index ) Insira um novo separador na posição especificada pelo índice. |
11 | invoke ( index ) Chama o retorno de chamada do comando associado à escolha no índice de posição. Se for um botão de verificação, seu estado é alternado entre definido e limpo; se for um botão de rádio, essa escolha é definida. |
12 | type ( index ) Retorna o tipo de escolha especificado por índice: "cascade", "checkbutton", "command", "radiobutton", "separator" ou "tearoff". |
Exemplo
Experimente o seguinte exemplo -
from Tkinter import *
def donothing():
filewin = Toplevel(root)
button = Button(filewin, text="Do nothing button")
button.pack()
root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
editmenu.add_separator()
editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
Quando o código acima é executado, ele produz o seguinte resultado -