Найти - Пользователи
Полная версия: Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)
Начало » GUI » Прикрепить изображения к пунктам Checkbutton (Tkinter/ttk)
1
Submersed
Добрый день.
Имеется массив 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
4kpt_IV
Заполняйте изображениями список. И потом присваивайте нужное изображение нужному полю.
Submersed
Большое спасибо за подсказку, но в 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]
4kpt_IV
images = []
for q in app0:
    x0 = q.split('*')[0]
    img = PhotoImage(file=imgdir+q.split('*')[2])
    images.append(img)
Submersed
Идеально! Благодарю
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB