Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk) [RSS Feed]

#1 Янв. 31, 2016 12:26:30

Submersed
Зарегистрирован: 2016-01-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)

Добрый день.
Имеется массив Checkbutton, построенный на основании строк в файле.
Строки вида: “название пункта меню*название файла*название картинки*описание файла”
К каждому пункту хочу прикрепить изображение. В приведенном ниже коде, изображение появляется только у последнего пункта… Подскажите, плз., что я делаю не так?

...
i=1
u=2
root.vars={}
for q in app0:
    x0 = q.split('*')[0] #получаем названия для пунктов меню
    im = imgdir+q.split('*')[2] #получаем ссылки на изображения
    img = PhotoImage(file=im)
    root.var=BooleanVar()
    ch0 = Checkbutton(canvas0,text=x0,image=img,compound=LEFT,variable=root.var,onvalue=True,offvalue=False)
    ch0.grid(row=u,column=i,ipadx=40,padx=5,pady=10,sticky='nsew')
    ch0.grid_propagate(False)
    if i<4:
        i+=1
    else:
        u+=1
        i=1
    root.var.set(False)
    root.vars[q] = root.var

Офлайн

#2 Янв. 31, 2016 12:29:57

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)

Заполняйте изображениями список. И потом присваивайте нужное изображение нужному полю.

Офлайн

#3 Янв. 31, 2016 15:15:31

Submersed
Зарегистрирован: 2016-01-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)

Большое спасибо за подсказку, но в Python я совсем новичок…
Могли бы привести пример такого заполнения? Буду очень благодарен.
Пробую сделать как показано ниже, но получаю ошибку: “TypeError: descriptor ‘append’ requires a ‘list’ object but received a ‘PhotoImage’”

[code python]
...
i=1
u=2
root.vars={}
for q in app0:
x0 = q.split('*')[0]
img = PhotoImage(file=imgdir+q.split('*')[2])
imag = list.append(img)
root.var=BooleanVar()
ch0 = Checkbutton(canvas0,text=x0,image=imag,compound=LEFT,variable=root.var,onvalue=True,offvalue=False)
ch0.grid(row=u,column=i,ipadx=40,padx=5,pady=10,sticky='nsew')
ch0.grid_propagate(False)
if i<4:
i+=1
else:
u+=1
i=1
root.var.set(False)
root.vars[q] = root.var
...
[/code]

Отредактировано Submersed (Янв. 31, 2016 15:16:53)

Офлайн

#4 Янв. 31, 2016 15:24:27

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)

images = []
for q in app0:
    x0 = q.split('*')[0]
    img = PhotoImage(file=imgdir+q.split('*')[2])
    images.append(img)

Офлайн

#5 Янв. 31, 2016 15:31:27

Submersed
Зарегистрирован: 2016-01-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)

Идеально! Благодарю

Офлайн

  • Начало
  • » GUI
  • » Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version