Wie setzt man das Fenstersymbol in Tkinter

Jinku Hu 30 Januar 2023
  1. root.iconbitmap zum Setzen des Fenster-Icons
  2. tk.call('wm', 'Iconphoto', ) Methode zum Setzen des Fenster-Icons
  3. root.iconphoto auf Window-Icon setzen
Wie setzt man das Fenstersymbol in Tkinter

Wir werden Methoden vorstellen, um das Fenstersymbol in Tkinter zu setzen.

  1. root.iconbitmap zum Setzen des Fenstersymbols
  2. root.tk.call() zum Setzen des Fenster-Icons
  3. root.iconphoto zum Einstellen des Fenstersymbols

root.iconbitmap zum Setzen des Fenster-Icons

import tkinter as tk

root = tk.Tk()

root.iconbitmap("/path/to/ico/icon.ico")
root.mainloop()

iconbitmap(bitmap) setzt das Symbol des Fenster-/Frame-Widgets auf bitmap. Das bitmap muß ein ico Typ sein, aber nicht png oder jpg Typ, sonst wird das Bild nicht als Icon angezeigt.

Tkinter gesetztes Fenster-Icon

Das obige Bild zeigt, wann der ico Typ in iconbitmap verwendet wird.

Wenn Sie den png Typ verwenden, ist das im Fenster gezeigte Icon leer,

Tkinter gesetztes Fenstersymbol mit png

tk.call('wm', 'Iconphoto', ) Methode zum Setzen des Fenster-Icons

import tkinter as tk

root = tk.Tk()

root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="/path/to/ico/icon.png"))

root.mainloop()

Die Methode tk.call ist die Tkinter-Schnittstelle zum tcl-Interpreter. Wir könnten einen tcl Befehl ausführen, indem wir diese call Methode benutzen.

Sie ist praktisch, wenn der Tkinter-Wrapper keinen Zugriff auf einige tcl/tk-Funktionen hat.

wm kommuniziert mit dem Windowmanager.

Wir müssen das Bild als tk.PhotoImage setzen, aber nicht das Bild selbst, sonst haben wir einen _tkinter.TclError-Fehler.

root.iconphoto auf Window-Icon setzen

Eine andere Methode zum Setzen von Fenster-Icons ist die root.iconphoto() Methode, die mehr Bildtypen akzeptiert, genau wie in tk.call('wm', 'iconphoto', ).

import tkinter as tk

root = tk.Tk()

root.iconphoto(False, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()

Hier bedeutet False, dass dieses Icon-Bild nur für dieses spezielle Fenster gilt, nicht aber für zukünftige Topvels.

Wenn Waise verwendet wird, wird das Icon-Bild auch auf alle zukünftig erstellten toplevels angewendet.

Autor: 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