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 -