HOWTO · Tkinter
Wie setzt man das Fenstersymbol in Tkinter
Dieses Tutorial führt ein, wie man das Fenstersymbol in Tkinter setzt.
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.