В настоящее время я создаю приложение tkinter GUI, и я использую некоторые изображения в качестве значков для элементов в виджетах treeview. Для того, чтобы читать и держать их в качестве ссылки я использовал этот код:Способ использования изображений в Tkinter как значки для лучшей производительности
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
И я думаю, что это не очень хорошая практика, если есть более чем 30 изображений, используемых. Еще один подход, который пришел мне в голову:
- для хранения изображений в виде байтовой строки в .py файле или;
- Использование для цикла для извлечения всех изображений в папке передает их как переменные.
Мне нужны советы от опытных разработчиков графического интерфейса. Какой способ является лучшим для производительности и использования в графических интерфейсах? (Может быть, все пути мои неверны)
Для информации: Размер этих изображений 16x16 и изображения для значков файлов
Я не совсем понимаю, что вы имеете в виду от _best performance_, потому что кажется, что вы просите о том, чтобы избежать записи более 30 пунктов. Если это так, используйте словарь вместо этого, чтобы сохранить все «PhotoImage» и получить его с помощью назначенного ключа. –
Я имею в виду, наилучшая производительность - это скорость и код. В древовидной структуре может быть сто элементов, и их значки могут отличаться. Поэтому чтение правильных изображений и их включение в графический интерфейс должно быть быстрым и легким в обслуживании. – bzimor
Если у вас нет тысяч или десятков тысяч изображений, разница в производительности будет незаметной. –