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 -