Python 3 - Tkinter Menubutton

Un menubutton est la partie d'un menu déroulant qui reste à l'écran tout le temps. Chaque menubutton est associé à un widget Menu qui peut afficher les choix pour ce menubutton lorsque l'utilisateur clique dessus.

Syntaxe

Voici la syntaxe simple pour créer ce widget -

w = Menubutton ( master, option, ... )

Paramètres

  • master - Ceci représente la fenêtre parente.

  • options- Voici la liste des options les plus couramment utilisées pour ce widget. Ces options peuvent être utilisées sous forme de paires clé-valeur séparées par des virgules.

N ° Sr. Option et description
1

activebackground

La couleur d'arrière-plan lorsque la souris est au-dessus du menubutton.

2

activeforeground

La couleur de premier plan lorsque la souris est sur le bouton de menu.

3

anchor

Cette option contrôle l'emplacement du texte si le widget a plus d'espace que le texte n'en a besoin. La valeur par défaut est anchor = CENTER, qui centre le texte.

4

bg

La couleur d'arrière-plan normale affichée derrière l'étiquette et l'indicateur.

5

bitmap

Pour afficher un bitmap sur le menubutton, définissez cette option sur un nom de bitmap.

6

bd

La taille de la bordure autour de l'indicateur. La valeur par défaut est de 2 pixels.

sept

cursor

Le curseur qui apparaît lorsque la souris se trouve sur ce bouton de menu.

8

direction

Réglez la direction = GAUCHE pour afficher le menu à gauche du bouton; utilisez direction = RIGHT pour afficher le menu à droite du bouton; ou utilisez direction = 'above' pour placer le menu au-dessus du bouton.

9

disabledforeground

Couleur de premier plan affichée sur ce bouton de menu lorsqu'il est désactivé.

dix

fg

La couleur de premier plan lorsque la souris ne se trouve pas sur le bouton de menu.

11

height

La hauteur du menubutton en lignes de texte (pas en pixels!). La valeur par défaut est d'adapter la taille du menubutton à son contenu.

12

highlightcolor

La couleur affichée dans la mise en évidence du focus lorsque le widget a le focus.

13

image

Pour afficher une image sur ce menubutton,

14

justify

Cette option contrôle où se trouve le texte lorsque le texte ne remplit pas le menubutton: utilisez justify = LEFT pour justifier à gauche le texte (c'est la valeur par défaut); utilisez justify = CENTER pour le centrer ou justify = RIGHT pour justifier à droite.

15

menu

Pour associer le menubutton à un ensemble de choix, définissez cette option sur l'objet Menu contenant ces choix. Cet objet de menu doit avoir été créé en passant le menubutton associé au constructeur comme premier argument.

16

padx

Combien d'espace laisser à gauche et à droite du texte du menubutton. La valeur par défaut est 1.

17

pady

Combien d'espace laisser au-dessus et en dessous du texte du menubutton. La valeur par défaut est 1.

18

relief

Sélectionne des effets d'ombrage de bordure en trois dimensions. La valeur par défaut est RAISED.

19

state

Normalement, les boutons de menu répondent à la souris. Définissez state = DISABLED pour griser le bouton de menu et le rendre insensible.

20

text

Pour afficher du texte sur le menubutton, définissez cette option sur la chaîne contenant le texte souhaité. Les retours à la ligne ("\ n") dans la chaîne entraîneront des sauts de ligne.

21

textvariable

Vous pouvez associer une variable de contrôle de la classe StringVar à ce menubutton. La définition de cette variable de contrôle changera le texte affiché.

22

underline

Normalement, aucun soulignement n'apparaît sous le texte sur le menubutton. Pour souligner l'un des caractères, définissez cette option sur l'index de ce caractère.

23

width

La largeur du widget en caractères. La valeur par défaut est 20.

24

wraplength

Normalement, les lignes ne sont pas enveloppées. Vous pouvez définir cette option sur un certain nombre de caractères et toutes les lignes seront divisées en morceaux ne dépassant pas ce nombre.

Exemple

Essayez vous-même l'exemple suivant -

# !/usr/bin/python3
from tkinter import *

import tkinter

top = Tk()

mb =  Menubutton ( top, text = "condiments", relief = RAISED )
mb.grid()
mb.menu  =  Menu ( mb, tearoff = 0 )
mb["menu"]  =  mb.menu
    
mayoVar  = IntVar()
ketchVar = IntVar()

mb.menu.add_checkbutton ( label = "mayo",
                          variable = mayoVar )
mb.menu.add_checkbutton ( label = "ketchup",
                          variable = ketchVar )

mb.pack()
top.mainloop()

Résultat

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -