Momentan erstelle ich tkinter GUI App und ich verwende einige Bilder als Symbole für Elemente in Treeview Widget. Um sich als Referenz zu lesen und zu halten habe ich diesen Code:Die Art und Weise der Verwendung von Bildern in Tkinter als Symbole für die beste Leistung
self.logoadd = tk.PhotoImage(file='../img/add.png')
self.logodel = tk.PhotoImage(file='../img/delete.png')
...
self.logoedit = tk.PhotoImage(file='../img/edit.png')
#Keep them as references
self.imgAdd = self.logoadd
self.imgDel = self.logodel
...
self.imgEdit = self.logoedit
Und ich denke, das ist keine gute Praxis ist, wenn es mehr als 30 Bilder verwendet. Ein weiterer Ansatz, der mir in den Sinn kam, ist:
- Bilder als Byte-Zeichenfolge in .py-Datei speichern oder;
- Verwenden Sie die for-Schleife, um alle Bilder im Ordner abzurufen, übergeben Sie sie als Variable.
Ich brauche einen Rat von erfahrenen GUI-Entwicklern. Welcher Weg ist der beste für die Performance und wird in GUI-Praktiken verwendet? (Sein mögen alle meine Wege sind falsch)
Zur Information: Größe dieser Bilder ist 16x16 und Bilder für Datei-Icons verwendet
Ich verstehe nicht ganz, was du mit _best performance_ meinst, denn es scheint, als ob du nach einer Möglichkeit fragst, 30+ Item-Zuweisungen zu vermeiden. Wenn dies der Fall ist, verwenden Sie stattdessen ein Wörterbuch, um alle "PhotoImage" zu speichern und mit dem zugewiesenen Schlüssel zu erhalten. –
Ich meine durch beste Leistung ist sowohl Geschwindigkeit und Code. In der Baumansicht können sich hundert Elemente befinden und ihre Symbole können sich unterscheiden. Daher sollte das Lesen der richtigen Bilder und das Einfügen in die GUI schnell und einfach zu warten sein. – bzimor
Wenn Sie nicht Tausende oder Zehntausende von Bildern haben, ist der Leistungsunterschied nicht wahrnehmbar. –