Python 3 - 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. | Opção e 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 em torno 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 escolha 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 | tipo (índice) Retorna o tipo de escolha especificado por índice: "cascade", "checkbutton", "command", "radiobutton", "separator" ou "tearoff". |
Exemplo
Experimente o seguinte exemplo -
# !/usr/bin/python3
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()
Resultado
Quando o código acima é executado, ele produz o seguinte resultado -