Maison > Article > développement back-end > Il s'agit probablement de la collection la plus complète de propriétés de contrôle tkinter
Cet article vous propose une liste complète des propriétés de contrôle tkinter, qui ont une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1. Bouton bouton. Semblable aux balises, mais fournit des fonctions supplémentaires, telles que le survol de la souris, la pression, le relâchement et les opérations/événements au clavier
2. Canevas. Fournit des fonctions de dessin (ligne, ellipse, polygone, rectangle) ; peut contenir des graphiques ou des bitmaps
3. Bouton de sélection du bouton de contrôle. Un ensemble de cases, dont chacune peut être sélectionnée (similaire à la case à cocher en HTML)
4. Zone de texte d'entrée. Champ de texte sur une seule ligne, utilisé pour collecter les saisies au clavier (similaire au texte en HTML)
5. Cadre. Conteneur pur contenant d'autres composants
6. Balise Label. Utilisé pour afficher du texte ou des images
7. Zone de liste Listbox. Une liste d'options parmi lesquelles l'utilisateur peut choisir
8.Menu. Une liste d'options apparaît après avoir cliqué sur le bouton de menu, parmi laquelle l'utilisateur peut choisir
9.Menubutton bouton de menu. Composants utilisés pour contenir des menus (déroulants, en cascade, etc.)
10. Boîte de message Message. Semblable à une étiquette, mais peut afficher plusieurs lignes de texte
11. Bouton radio Radiobutton. Un ensemble de boutons dont un seul peut être "appuyé" (similaire à la radio en HTML)
12.Ajuster la barre de progression. Le composant "curseur" linéaire peut définir la valeur de début et la valeur de fin, et affichera la valeur précise de la position actuelle
13. Barre de défilement de la barre de défilement. Fournir une fonction de défilement pour ses composants pris en charge (champ de texte, canevas, zone de liste, zone de texte)
14.Champ de texte texte. Zone de texte multiligne, qui peut être utilisée pour collecter (ou afficher) le texte saisi par l'utilisateur (similaire à la zone de texte en HTML)
15.Toplevel. Semblable à un cadre, mais fournit un conteneur de fenêtre indépendant.
Tkinter prend en charge 15 widgets principaux. La liste de ces 15 classes de widgets principales est la suivante :
Widgets et descriptions :
Bouton :
Un simple bouton utilisé pour exécuter une commande ou une autre opération.
Toile :
Organisez les graphiques. Ce widget peut être utilisé pour dessiner des tableaux et des graphiques, créer des éditeurs graphiques et implémenter des widgets personnalisés.
Bouton à cocher :
représente une variable qui a deux valeurs différentes. En cliquant sur ce bouton, vous basculerez entre ces deux valeurs.
Entrée :
Champ de saisie de texte.
Frame :
Un widget conteneur. Les cadres peuvent avoir des bordures et des arrière-plans et sont utilisés pour organiser d'autres widgets lors de la création d'une application ou d'une présentation de boîte de dialogue.
Libellé :
Afficher un texte ou une image.
Listbox :
Affiche une liste d'alternatives. La zone de liste peut être configurée pour se comporter comme un bouton radio ou une liste de contrôle.
Menu :
Barre de menus. Utilisé pour implémenter des menus déroulants et contextuels.
Bouton Menu :
Bouton Menu. Utilisé pour implémenter des menus déroulants.
Message :
Afficher un texte. Similaire au widget d'étiquette, mais ajuste automatiquement le texte à une largeur ou un rapport donné.
Radiobutton :
Représente une variable, qui peut avoir plusieurs valeurs. En cliquant dessus, vous définirez la valeur de cette variable et effacerez les autres boutons radio liés à cette même variable.
Échelle :
Permet de définir une valeur numérique via un curseur.
Barre de défilement :
est une barre de défilement standard utilisée avec les widgets de canevas, d'entrée, de liste et de texte.
Texte :
Affichage du texte formaté. Vous permet d'afficher et de modifier du texte avec différents styles et propriétés. Les images et les fenêtres en ligne sont prises en charge.
Toplevel :
Un widget conteneur, affiché sous la forme d'une fenêtre distincte située en haut.
Notez que les classes de widgets ne sont pas hiérarchiques dans Tkinter ; toutes les classes de widgets sont frères dans l'arborescence.
Tous ces widgets fournissent des méthodes de gestion diverses et géométriques, des méthodes de gestion de configuration et des méthodes supplémentaires définies par le widget lui-même. De plus, la classe Toplevel fournit également une interface de gestion de fenêtres. Cela signifie qu'une classe de widget typique fournit environ 150 méthodes.
Widget Bouton
Le widget Bouton est un widget Tkinter standard utilisé pour implémenter divers boutons. Les boutons peuvent contenir du texte ou des images, et vous pouvez associer des boutons à une fonction ou une méthode Python. Lorsque ce bouton est enfoncé, Tkinter appelle automatiquement la fonction ou la méthode associée
Le bouton ne peut afficher qu’une seule police, mais le texte peut s’étendre sur plusieurs lignes. De plus, une lettre de ce texte peut être soulignée, par exemple pour indiquer une touche de raccourci. Par défaut, la touche Tab déplace le focus sur un widget de bouton.
1. Alors, quand devez-vous utiliser les composants des boutons ?
En bref, le composant bouton est utilisé pour permettre à l'utilisateur de dire "Effectuez cette tâche pour moi maintenant". Habituellement, nous utilisons le texte ou les images affichées sur le bouton pour inviter. Les boutons sont généralement utilisés dans les barres d'outils ou les fenêtres d'application et permettent d'accepter ou d'ignorer les données saisies dans les boîtes de dialogue.
Pour plus de détails sur la coordination des boutons et des données d'entrée, veuillez vous référer aux composants Checkbutton et Radiobutton.
2. Style
Les boutons ordinaires sont faciles à créer, il suffit de spécifier le contenu du bouton (texte, bitmap, image) et une fonction de rappel lorsque le bouton est enfoncé :
b = Bouton (maître, texte ="OK", command=self.ok)
Un bouton sans fonction de rappel est inutile Il ne fait rien lorsque vous appuyez sur le bouton. Vous souhaiterez peut-être implémenter ce genre de bouton lors du développement d'une application, par exemple pour ne pas déranger vos bêta-testeurs :
b = Button(master, text="Help", state=DISABLED)
si vous ne le faites pas Si vous ne spécifiez pas de taille, le bouton aura juste la bonne taille pour contenir son contenu. Vous pouvez utiliser les options padx et pady pour augmenter l'espacement entre le contenu et la bordure du bouton. Vous pouvez également définir explicitement la taille du bouton à l'aide des options de hauteur et de largeur. Si vous affichez du texte dans un bouton, ces options définiront la taille du bouton en unités du texte. Si vous affichez une image à la place, les dimensions du bouton seront en pixels (ou autres unités d'écran). Vous pouvez même définir la taille du bouton de texte en unités de pixels, mais cela peut avoir des résultats inattendus. Voici un exemple de code pour spécifier la taille :
f = Frame(master, height=32, width=32)
f.pack_propagate(0) # ne pas rétrécir
b = Button(f , text ="Sure!")
b.pack(fill=BOTH, expand=1)
Le bouton peut afficher plusieurs lignes de texte (mais ne peut utiliser qu'une seule police). Vous pouvez utiliser les options multiligne ou wraplength pour que le bouton redimensionne son texte. Lors de l'ajustement du texte, utilisez l'ancre, justifiez ou ajoutez l'option padx pour obtenir le format souhaité. Un exemple est le suivant :
b = Button(master, text=longtext, Anchor=W, justifier=LEFT, padx=2)
Afin de donner à un bouton normal un aspect encastré, par exemple, vous souhaitez réaliser Pour certains types de boîte à outils, vous pouvez simplement changer la valeur du relief de « RAISED » à « SUNKEN :
b.config(relief=SUNKEN)
Vous souhaiterez peut-être également modifier l'arrière-plan. REMARQUE : A probablement plus Une bonne solution consiste à utiliser un Checkbutton ou un Radiobutton avec la valeur de l'option Indicatoron définie sur false :
b = Checkbutton(master, image=bold, variable=var, Indicatoron=0)
3. Méthode
Bouton Le widget prend en charge l'interface de widget Tkinter standard, ainsi que les méthodes suivantes :
flash() : redessine fréquemment le bouton pour basculer entre les styles actif et normal
Invoquer() : Appel associé à la commande du bouton. 🎜> Les méthodes suivantes vous permettent d'implémenter votre propre liaison de bouton :
tkButtonDown(), tkButtonEnter(), tkButtonInvoke(), tkButtonLeave(), tkButtonUp()
Ces méthodes peuvent être utilisées dans la personnalisation. Dans la liaison d'événement, toutes ces méthodes reçoivent 0 ou plusieurs paramètres formels
4. Options
Le widget de bouton prend en charge les options suivantes :
activebackground, activeforeground
Type : color
Description : La couleur ; utilisé lorsque le bouton est activé.
ancre
Type : Constante
Description : Utilisez N, NE, E, SE, S, W, NW ou CENTER. 🎜> arrière-plan (bg), premier plan (fg)
Type : couleur
Description : La valeur par défaut est spécifique à la plate-forme 🎜> bitmap
Type : Bitmap ;
Description : Le bitmap affiché dans. le widget. Si l'option image est spécifiée, cette option est ignorée. Le bitmap suivant est valide sur toutes les plateformes : error , gray75, gray50, gray25, gray12, hourglass, info, questhead, question et warn.Les bitmaps suivants ne sont valables que sur Macintosh : document, papeterie, édition, application, accessoire, dossier, dossier, corbeille, disquette, disque virtuel, cdrom, préférences, querydoc, stop, note et prudence.
Vous pouvez également utiliser des bitmaps chargé à partir d'un fichier XBM. Ajoutez simplement un préfixe @ avant le nom du fichier XBM, tel que "@sample.xbm".
borderwidth (bd)
Type : Entier
Description : La largeur de la bordure du bouton. Les valeurs par défaut sont spécifiques à la plateforme. Mais généralement 1 ou 2 pixels
commande
Type : rappel ;
Description : Une fonction ou une méthode appelée lorsque le bouton est enfoncé. Le rappel peut être une fonction, une méthode ou un autre objet Python appelable
curseur
Type : Curseur
Description : Le curseur affiché lorsque la souris passe sur le bouton.
par défaut
Type : Constante ;
Description : S'il est défini, le bouton est le bouton par défaut. Notez que cette syntaxe a changé dans Tk 8.0b2.
désactivéavant-plan
Type : Couleur ;
Description : La couleur lorsque le bouton est désactivé.
police
Type : police
Description : La police utilisée par le bouton. Les boutons ne peuvent contenir du texte que dans une seule police.
highlightbackground, highlightcolor
Type : couleur
Description : Contrôlez la couleur de la bordure de surbrillance là où se trouve le focus. Lorsque le widget obtient le focus, la bordure est de la couleur spécifiée par highlightcolor. Sinon, la bordure est de la couleur spécifiée par highlightbackground. La valeur par défaut est déterminée par le système.
Highlightthickness
Type : Distance ;
Description : Contrôlez la largeur de la bordure de surbrillance à l'endroit où se trouve le focus. La valeur par défaut est généralement de 1 ou 2 pixels.
image
Type : Image
Description : L'image affichée dans le composant. Si elles sont spécifiées, les options de texte et de bitmap sont ignorées.
justifier
Type : constante ;
Description : Définir comment aligner plusieurs lignes de texte. Les valeurs possibles sont : GAUCHE, DROITE ou CENTRE.
padx, pady
Type : distance ;
Description : Spécifiez l'espacement entre le texte ou l'image et la bordure du bouton.
relief
Type : constant
Description : Décoration de la bordure. Habituellement, les boutons sont enfoncés lorsqu'ils sont enfoncés et relevés autrement. Les autres valeurs possibles sont GROOVE, RIDGE et FLAT.
état
Type : Constante ;
Description : L'état du bouton : NORMAL, ACTIF ou DÉSACTIVÉ. La valeur par défaut est NORMAL.
takefocus
Type : Flag ;
Description : Indique que l'utilisateur peut utiliser la touche Tab pour déplacer le focus sur ce bouton. La valeur par défaut est une chaîne vide, ce qui signifie que si le bouton a une liaison de clé, il peut obtenir le focus via la clé liée.
texte
Type : Chaîne
Description : Le texte affiché dans le bouton. Le texte peut comporter plusieurs lignes. Si les options bitmaps ou image sont utilisées, l'option texte est ignorée.
textvariable
Type : variable ;
Description : Variable Tk liée au bouton (généralement une variable chaîne). Si la valeur de cette variable change, le texte du bouton est mis à jour en conséquence.
souligner
Type : Entier ;
Description : Quel caractère est souligné dans l'étiquette de texte. La valeur par défaut est -1, ce qui signifie qu'aucun caractère n'est souligné.
largeur, hauteur
Type : distance ;
Description : La taille du bouton. Si le bouton affiche du texte, les dimensions utilisent les unités du texte. Si le bouton affiche une image, la taille est en pixels (ou unités d'écran). Si la taille n'est pas précisée, elle sera calculée en fonction du contenu du bouton.
wraplength
Type : distance ;
Description : Détermine quand le texte d'un bouton est ajusté sur plusieurs lignes. Il est mesuré en unités de l'écran. Non ajusté par défaut.
Mixins
Le module Tkinter fournit des classes correspondant à différents types de widgets dans Tk et un certain nombre de mixins et autres classes helper (un mixin est une classe conçue pour interagir avec d'autres classes utilisant l'héritage polymorphe combiné). Lorsque vous utilisez Tkinter, vous n’aurez pas d’accès direct aux classes mixin.
1. Implémenter les mixins
Grâce à la fenêtre racine et aux classes de widgets, la classe Misc est utilisée comme mixin. Il fournit un grand nombre de services liés à Tk et aux fenêtres qui sont disponibles à tous les utilisateurs de widgets principaux de Tkinter. Cela se fait via des délégués ; le widget demande simplement directement l’objet interne approprié.
La classe Wm est utilisée comme mixin via la fenêtre racine et les classes de widgets de niveau supérieur. Il fournit des services de gestion de fenêtres par délégation.
Utilisez des délégués pour simplifier le code de votre application comme ceci : Une fois que vous avez un widget, vous pouvez accéder à toutes les parties de Tkinter en utilisant les méthodes de cette instance de widget.
2. Géométrie et mixins
Les classes telles que Grid, Pack et Place sont utilisées comme mixins via la classe widget. Ils fournissent également une prise en charge pour accéder à la gestion de différentes géométries via la délégation.
Ce qui suit est une liste et une description des mixins géométriques :
Gestionnaire et description :
Grille : Le gestionnaire de géométrie de grille vous permet de créer une disposition de type tableau en organisant les widgets dans une grille bidimensionnelle.
Pack : le gestionnaire de géométrie du pack crée une mise en page en regroupant les widgets dans un widget parent dans un cadre. Pour utiliser ce gestionnaire de géométrie avec un widget, nous utilisons la méthode pack sur le widget pour l'intégrer.
Lieu : Le gestionnaire de géométrie de lieu vous permet de placer explicitement un widget à un emplacement donné. Pour utiliser ce gestionnaire de géométrie, utilisez la méthode place.
3. Gestion de la configuration des widgets
La classe Widget utilise des mixins de géométrie pour mélanger la classe Misc, et ajoute la gestion de la configuration via les méthodes cget et configure, ou via une interface de dictionnaire local.
Configuration des widgets
Pour configurer l'apparence d'un widget, il vaut mieux utiliser des options que des appels de méthodes. Les options typiques incluent le texte, la couleur, la taille, la commande, etc. Pour les options de traitement, tous les widgets principaux implémentent la même interface de configuration :
Interface de configuration
widgetclass(master, option=value, ...) => widget
Description :
Créer cette fenêtre Une instance du widget qui est un enfant du maître donné et utilise les options données. Toutes les options ont des valeurs par défaut, donc dans les cas simples, il vous suffit de spécifier le maître. Vous ne pouvez pas spécifier de maître si vous le souhaitez ; Tkinter utilisera alors la fenêtre racine la plus récemment créée comme maître. Notez que cette option de nom ne peut être définie que lors de la création du widget.
cget(option) => string
Description :
Renvoie la valeur actuelle d'une option. Les noms d'options et les valeurs de retour sont tous deux des chaînes. Pour obtenir l’option name, utilisez plutôt str(widget).
configure(option=value, ...), config(option=value, ...)
Description :
Définissez une ou plusieurs options (données comme arguments de mot-clé).
Notez que les noms de certaines options sont les mêmes que des mots réservés en Python (class, from, etc.). Pour les utiliser comme arguments de mots-clés, ajoutez simplement un trait de soulignement (class_, from_) après les noms d'options. Notez que vous ne pouvez pas utiliser cette méthode pour définir l'option de nom ; l'option de nom ne peut être définie que lors de la création du widget.
Pour plus de commodité, le widget implémente également une interface de dictionnaire partiel. La méthode __setitem__ mappe configure et la méthode __getitem__ mappe cget. Vous pouvez définir et interroger des options en utilisant la syntaxe suivante :
value = widget[option]
widget[option] = value
Notez que chaque affectation entraîne un appel à Tk. Si vous souhaitez modifier plusieurs options, c'est une bonne idée d'appeler (config ou configure) individuellement pour les modifier.
Les méthodes de dictionnaire suivantes s'appliquent également aux widgets :
keys() => list
Description :
Renvoie une liste de toutes les options pouvant être définies dans le widget. L'option name n'est pas incluse dans cette liste (elle ne peut pas être interrogée ou modifiée via l'interface du dictionnaire).
Compatibilité descendante
Les arguments de mots-clés ont été introduits dans Python 1.3. Auparavant, les dictionnaires Python bruts étaient utilisés pour transmettre des options au constructeur de fenêtre et configurer des méthodes. Le code original est similaire au suivant :
self.button = Button(frame, {"text": "QUIT", "fg": "red", "command": frame.quit})
self .button.pack ({"côté": GAUCHE})
La syntaxe des arguments des mots-clés est plus élégante et moins sujette aux erreurs. Mais pour des raisons de compatibilité avec le code existant, Tkinter prend toujours en charge l'ancienne syntaxe. Vous ne devez pas utiliser l'ancienne syntaxe dans les nouveaux programmes, même si elle est intéressante dans certains cas. Par exemple, si vous créez un widget personnalisé qui doit transmettre des options de configuration à sa classe parent, votre code pourrait ressembler à ceci :
def __init__(self, master, **kw):
Canvas.__init__ (self , master, kw) # kw est un dictionnaire
Le code ci-dessus fonctionne bien sous la version actuelle de Tkinter, mais il pourrait ne pas fonctionner sous les versions futures. Une méthode courante consiste à utiliser la fonction apply :
def __init__(self, master, **kw):
apply(Canvas.__init__, (self, master), kw)
Cette fonction apply utilise un fonction (une méthode sans contrainte), un tuple avec des arguments (il doit inclure self car nous appelons une méthode sans contrainte), un dictionnaire facultatif fournissant des arguments de mots clés.
Couleur du style du widget
Tous les widgets standard de Tkinter fournissent un ensemble d'options de style, qui vous permettent de modifier l'apparence de ces widgets telles que la couleur, la police et toute autre apparence visuelle.
Couleur
La plupart des widgets vous permettent de spécifier la couleur du widget et du texte. Cela peut être fait en utilisant les options d'arrière-plan et de premier plan. Pour spécifier une couleur, vous pouvez utiliser un nom de couleur ou une combinaison de couleurs rouge, verte et bleue.
1. Nom de la couleur
Tkinter comprend une base de données de couleurs qui mappe les noms de couleurs aux valeurs RVB correspondantes. Cette base de données comprend des noms communs tels que Red, Green, Blue, Yellow et LightBlue, ainsi que des noms exotiques tels que Moccasin, PeachPuff, etc. Sur les systèmes X Window, les noms de couleurs sont définis par le serveur X. Vous pouvez trouver un fichier appelé xrgb.txt, qui contient une liste de noms de couleurs et les valeurs RVB correspondantes. Sur les systèmes Windows et Macintosh, les tables de couleurs sont intégrées à Tk.
Sous Windows, vous pouvez utiliser les couleurs du système Windows (les utilisateurs peuvent modifier ces couleurs via le panneau de configuration) :
SystemActiveBorder, SystemActiveCaption, SystemAppWorkspace, SystemBackground,
SystemButtonFace, SystemButtonHighlight, SystemButtonShadow, SystemButtonText,
SystemCaptionText , SystemDisabledText, SystemHighlight, SystemHighlightText,
SystemInactiveBorder, SystemInactiveCaption, SystemInactiveCaptionText, SystemMenu,
SystemMenuText, SystemScrollbar, SystemWindow, SystemWindowFrame, SystemWindowText.
Sur Macintosh, les couleurs système suivantes sont valides :
SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText, SystemMenu, SystemMenuActive, SystemMenuActiveText, SystemMenuDisabled, SystemMenuText, SystemWindowBody.
Les noms de couleurs ne sont pas sensibles à la casse. De nombreux noms et mots de couleur sont valides avec ou sans casse entre eux. Par exemple, "lightblue", "light blue" et
"Light Blue" sont tous de la même couleur.
2. Format RVB
Si vous devez spécifier explicitement le nom de la couleur, vous pouvez utiliser une chaîne au format suivant :
#RRGGBB
RR, GG, BB sont des valeurs rouge, verte et bleue représentation respectivement hexadécimale. L'exemple suivant montre comment convertir un triplet de couleurs en format de couleur Tk :
tk_rgb = "#%02x%02x%02x" % (128, 192, 200)
Tk est également pris en charge. Utilisez des formulaires tels que " #RGB" et "rrrrggggbbbb" pour spécifier des valeurs comprises respectivement entre 16 et 65536 degrés.
Vous pouvez utiliser la méthode winfo_rgb du widget pour convertir une chaîne représentant une couleur (nom ou format RVB) en triplet :
rgb = widget.winfo_rgb("red")
red, green, blue = rgb [0]/256, rgb[1]/256, rgb[2]/256
Notez que winfo_rgb renvoie une valeur RVB 16 bits, allant de 0 à 65535. Pour les mapper sur la plage plus générale de 0 à 255, vous devez diviser chaque valeur par 256 (ou les décaler de 8 bits vers la droite).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!