Wie setzt man das Fenstersymbol in Tkinter
-
root.iconbitmapzum Setzen des Fenster-Icons -
tk.call('wm', 'Iconphoto', )Methode zum Setzen des Fenster-Icons -
root.iconphotoauf Window-Icon setzen
Wir werden Methoden vorstellen, um das Fenstersymbol in Tkinter zu setzen.
root.iconbitmapzum Setzen des Fenstersymbolsroot.tk.call()zum Setzen des Fenster-Iconsroot.iconphotozum 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.
![]()
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,
![]()
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.
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