HOWTO · Tkinter
Comment définir l'icône de la fenêtre dans Tkinter
Ce tutoriel présente comment définir l'icône de la fenêtre dans Tkinter.
Nous allons présenter des méthodes pour définir l’icône de la fenêtre dans Tkinter.
root.iconbitmappour définir l’icône de la fenêtreroot.tk.call()pour définir l’icône de la fenêtreroot.iconphotopour définir l’icône de la fenêtre
root.iconbitmap pour définir l’icône de la fenêtre
import tkinter as tk
root = tk.Tk()
root.iconbitmap("/path/to/ico/icon.ico")
root.mainloop()
iconbitmap(bitmap) définit l’icône du widget window/frame à bitmap. Le bitmap doit être de type ico, mais pas de type png ou jpg, sinon l’image ne sera pas affichée comme icône.
![]()
L’image ci-dessus montre quand le type ico est utilisé dans iconbitmap.
Si vous utilisez le type png, l’icône affichée dans la fenêtre sera vide,
![]()
tk.call('wm', 'Iconphoto', ) Méthode pour définir l’icône de la fenêtre
import tkinter as tk
root = tk.Tk()
root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()
La méthode tk.call est l’interface de Tkinter avec l’interpréteur tcl. Nous pourrions lancer une commande tcl en utilisant cette méthode call.
C’est pratique quand le wrapper de Tkinter ne peut pas avoir accès à certaines fonctionnalités de tcl/tk.
wm communique avec le gestionnaire de fenêtres.
Nous devons définir l’image comme tk.PhotoImage mais pas l’image elle-même, sinon nous aurons une erreur _tkinter.TclError.
root.iconphoto pour définir l’icône de la fenêtre
Une autre méthode pour définir l’icône de la fenêtre est d’utiliser la méthode root.iconphoto() qui accepte plus de types d’images comme dans tk.call('wm', 'iconphoto', ).
import tkinter as tk
root = tk.Tk()
root.iconphoto(False, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()
Ici, False signifie que cette image d’icône s’applique seulement à cette fenêtre spécifique mais pas aux futurs toplevels créés.
Si True est utilisé, l’image de l’icône est appliquée à tous les futurs toplevels créés également.