Форум сайта python.su
0
Здравствуйте. Есть некое приложение получающее объект класса Group(id, name, photo_50). Где photo_50 - ссылка на картинку.
def insert_group(self, group, _type, index=END): from PIL import Image, ImageTk import urllib.request import os.path img_path = './cache/%s_50.jpg' % group.id if not os.path.exists(img_path): if not os.path.exists('cache'): os.mkdir('cache') with open(img_path, 'wb') as img_file: img_file.write(urllib.request.urlopen(group.photo_50).read()) image = Image.open(img_path) photo = ImageTk.PhotoImage(image, size=500) # Здесь выбирается Treeview, не обращайте внимание # ибо строка вставляется tv = self.my_table tv.insert('', index, image=photo, values=(group.name, group.__repr__()))
Отредактировано kaper156 (Июнь 13, 2015 20:54:25)
Офлайн
39
Какая версия питона?
Офлайн
0
4kpt_III
Какая версия питона?
$ python3 Python 3.4.3 (default, Mar 25 2015, 17:13:50) [GCC 4.9.2 20150304 (prerelease)] on linux
Офлайн
39
Должно работать.
Смотрите. Я вставляю через конфигурирование.
values=((code, name, description, keywords, price)) table.insert("", "end", text="", tag=code, values=values) table.tag_configure(code, image=image_obj)
Офлайн
9
давно не юзал tkinter, но вроде такие случаи имел ввиду Лутц, когда писал:
“Отметьте также, что мы сохраняем ссылки на объекты изображений в списке – если этого не сделать, изображения будут уничтожены при утилизации их объектов сборщиком мусора, даже если в этот момент они будут отображаться на экране. Чтобы избежать такой неприятности, мы сохраняем ссылки на объекты в долгоживущем списке.”
Офлайн
39
WoMax
Это не совсем то, но тоже важно. В скрипте вставляется одно изображение. Причем в теле функции. Поэтому тут не тот вариант.
Офлайн
0
Сделал так.
tv.insert('', index, text='Name', tag=group.id, values=(group.name, group.__repr__())) tv.tag_configure(group.id, image=photo, text=None)
File "/.../script.py", line 223, in insert_group tv.tag_configure(group.id, image=photo, text=None) File "/usr/lib/python3.4/tkinter/ttk.py", line 1450, in tag_configure tagname) File "/usr/lib/python3.4/tkinter/ttk.py", line 297, in _val_or_dict res = tk.call(*(args + options)) _tkinter.TclError: unknown option "pyimage1"
File "/.../script.py", line 223, in insert_group tv.tag_configure(group.id, image=photo, text=None) File "/usr/lib/python3.4/tkinter/ttk.py", line 1450, in tag_configure tagname) File "/usr/lib/python3.4/tkinter/ttk.py", line 297, in _val_or_dict res = tk.call(*(args + options)) _tkinter.TclError: value for "-text" missing
Отредактировано kaper156 (Июнь 14, 2015 09:07:08)
Офлайн
39
А вот это уже проблема, про которую написал WoMax…
Офлайн