Comment définir l'icône de la fenêtre dans Tkinter

Jinku Hu 30 janvier 2023
  1. root.iconbitmap pour définir l’icône de la fenêtre
  2. tk.call('wm', 'Iconphoto', ) Méthode pour définir l’icône de la fenêtre
  3. root.iconphoto pour définir l’icône de la fenêtre
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.

  1. root.iconbitmap pour définir l’icône de la fenêtre
  2. root.tk.call() pour définir l’icône de la fenêtre
  3. root.iconphoto pour 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.

Tkinter définit l’icône de la fenêtre

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,

Icône de la fenêtre du set Tkinter avec png

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.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook