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