Resumo : neste tutorial, você aprenderá como usar o Menubutton
widget Tkinter.
Introdução ao Menubutton
widget
Um Menubutton
widget é uma combinação de um Button
e um Menu
widget.
Quando você clica em Menubutton
, ele mostra um menu com opções. Por exemplo:
Para criar um Menubutton
widget, siga estas etapas:
Primeiro, crie um MenuButton
widget:
menu_button = ttk.Menubutton(container, **options)
Linguagem de código: Python ( python )
Segundo, crie uma nova instância da Menu
classe:
menu = tk.Menu(menu_button, tearoff=False)
Linguagem de código: Python ( python )
Terceiro, adicione um ou mais itens de menu à instância de menu. E você pode adicionar widgets Checkbutton ou Radiobutton ao menu.
Por fim, atribua Menu
à MenuButton
instância:
menu_button["menu"] = menu
Linguagem de código: Python ( python )
Exemplo de widget de botão de menu Tkinter
O programa a seguir ilustra como usar Menubutton
o widget. Ao clicar em MenuButton
, será exibido um menu que consiste em três opções: vermelho, verde e azul.
A cor de fundo da janela principal mudará com base no item de menu selecionado Menubutton
:
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry('300x250')
self.title('Menubutton Demo')
# Menubutton variable
self.selected_color = tk.StringVar()
self.selected_color.trace("w", self.menu_item_selected)
# create the menu button
self.create_menu_button()
def menu_item_selected(self, *args):
""" handle menu selected event """
self.config(bg=self.selected_color.get())
def create_menu_button(self):
""" create a menu button """
# menu variable
colors = ('Red', 'Green', 'Blue')
# create the Menubutton
menu_button = ttk.Menubutton(
self,
text='Select a color')
# create a new menu instance
menu = tk.Menu(menu_button, tearoff=0)
for color in colors:
menu.add_radiobutton(
label=color,
value=color,
variable=self.selected_color)
# associate menu with the Menubutton
menu_button["menu"] = menu
menu_button.pack(expand=True)
if __name__ == "__main__":
app = App()
app.mainloop()
Linguagem de código: Python ( python )
Como funciona.
No __init__()
método, definimos uma variável que rastreia o valor selecionado do menu:
self.selected_color = tk.StringVar()
self.selected_color.trace("w", self.menu_item_selected)
Linguagem de código: Python ( python )
Se o valor de selected_color
for alterado, o método menu_item_selected será executado.
O create_menu_button()
método cria o MenuButton
:
Primeiro, crie um botão Menu:
menu_button = ttk.Menubutton(
self,
text='Select a color')
Linguagem de código: Python ( python )
Em seguida, crie um novo menu e adicione três Radiobutton
widgets derivados da colors
tupla ao menu:
# create a new menu instance
menu = tk.Menu(menu_button, tearoff=0)
for color in colors:
menu.add_radiobutton(
label=color,
value=color,
variable=self.selected_color)
Linguagem de código: Python ( python )
Quando você seleciona um item de menu, o valor da self.selected_color
variável muda para o valor do item de menu selecionado.
Por fim, associe o menu ao Menubutton
:
menu_button["menu"] = menu
Linguagem de código: Python ( python )
Resumo
- Use
Menubutton
o widget Tkinter para criar um menu associado a um botão.