bonsoir tout le monde
je voudrai savoir comment insérer des icones dans la barre de menu?
et merci d'avance
bonsoir tout le monde
je voudrai savoir comment insérer des icones dans la barre de menu?
et merci d'avance
Simplement en utilisant l'option image d'un Menubuton ou d'un article de Menu ajouter avec add_*, avec comme valeur une instance valable d'une image qui dépend du format que tu veut utiliser, en passant soit par le détours PIL ou une instance de PhotoImage.
A savoir que normalement en précisant l'option image a un Menubutton ou a un article de Menu l'image remplace le texte mais on peut faire les deux: image et texte.
A savoir que il vaut mieux passer par le module PIL (Python Imaging Library) qui sert a manipuler des images pouvant s'interfacer avec Tkinter par sa classe ImageTk.
NB: il faut conserver l'instance de ton image dans un conteneur: liste, tuple ou dict afin de pas perdre la référence de celle-ci: problème souvent soulever par les débutants Tkinter.
Voici un code exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import Tkinter as tk from PIL import Image,ImageTk tk_instance=tk.Tk() #Création d'un instance de l'objet Tk() img=Image.open('/home/nom/Images/image.ext') #Ouverture du fichier image img_tk=[ImageTk.PhotoImage(img)] #Création de l'instance de l'image dans une liste menu_articlebut=tk.Menubutton(tk_instance,image=img_tk[0],text='Menu button',compound='left') #Création d'un Menubutton avec une image et du texte. le compound='left' permet de situer ton image a gauche du texte menu_article=tk.Menu(menu_articlebut) #création du Menu menu_article.add_command(image=img_tk[0],label='image in command',compound='left') #Addition d'un article de Menu de type command avec image et texte menu_articlebut.config(menu=menu_article) #Association du Menubutton au Menu menu_articlebut.pack() tk_instance.mainloop() #lancement de la boucle qui attend les interactions de l'utilisateur de la GUI.
Salut
le trucs c'est que j'utilise python3.2 et dans cette version ya pa PIL
alors que dois je faire??
Essaye de implémenter une instance valide avec la classe tkinter.PhotoImage mais cette classe ne supporte que les formats: GIF, PPM/PGM mais tu peut transcoder en format *.gif.
Soit par internet en ligne:
-online-images-converter.html
Mais l'image gif de sortie n'est pas garantie d'être pris en charge après transcodage (voir après).
-sinon par le biais d'un programme comme GIMP (GNU Image Manipulation Programme).
Si le traceback te dit quelque chose comme:
C'est que l'image n'est pas pris en charge malgré le bon format, ca arrive.image"pyimage1" doesn't exist
Le code avec PhotoImage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 # -*- coding: utf-8 -*- import Tkinter as tk tk_instance=tk.Tk() #Création d'un instance de l'objet Tk() img_tk=[tk.PhotoImage(file='/Chemin/vers/image.gif')] #Création de l'instance PhotoImage avec l'image comme valeur d'argument file=, dans une liste menu_articlebut=tk.Menubutton(tk_instance,image=img_tk[0],text='Menu button',compound='left') #Création d'un Menubutton avec une image et du texte. le compound='left' permet de situer ton image a gauche du texte menu_article=tk.Menu(menu_articlebut) #création du Menu menu_article.add_command(image=img_tk[0],label='image in command',compound='left') #Addition d'un article de Menu de type command avec image et texte menu_articlebut.config(menu=menu_article) #Association du Menubutton au Menu menu_articlebut.pack() tk_instance.mainloop() #
Bonjour,
Juste une précision pour éviter les confusions sur les erreurs tkinter.
Pas trop (du tout même): Ceci est débattu ici (Voir la réponse de wiztricks).
C'est une erreur qui arrive non pas lors de la création de l'instance mais lors de son utilisation. Vous comprendrez dans le lien.
Pour ce qui est des formats non reconnus c'est
Cette erreur arrive lors de la lecture du fichier image, img = tkinter.PhotoImage(...) ou img = tkinter.BitmapImage(...)._tkinter.TclError: couldn't recognize data in image file "nomdufichierimage"
Les autres erreurs 'classiques' sont:
Too early to create image
et le normal
@+_tkinter.TclError: couldn't open "nomdufichierimage": no such file or directory
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager