как поместить изображение на каждую используемую кнопку (для цикла) в python

#python #tkinter #button #photoimage

#python #tkinter #кнопка #фотоизображение

Вопрос:

Я хочу создать цикл для создания нескольких кнопок и поместить другое изображение в каждую кнопку. но это показывает, что на последней кнопке, -отмечено: когда я запускаю (отлаживаю) шаг за шагом, это работает. -прошло два дня с тех пор, как я искал в Google, заранее благодарю вас

     from tkinter import *

    win = Tk()
    win.geometry("800x600")
    win.title("hhh")


    ls = ['/home/decode/Images/ImageDB/tom.png', '/home/decode/Images  /ImageDB/aub.png','/home/decode/Images/ImageDB/res.png']
    z=0
    #g= ls[z]


    for i in range(3):
        g= ls[z]
        img = PhotoImage(file=g)
        btn = Button(win, image=img)
        btn.pack()
        z =1



    win.*mainloop*()
  

введите описание изображения здесь«
введите описание изображения здесь

Комментарии:

1. Изучите протокол итерации. Нет индекса, нет диапазона, нет z , пожалуйста

2. Вы уверены, что ваши пути к файлам изображений правильные? Почему в одном из них есть пробелы?

3. спасибо за ваш ответ, да, путь хорош, когда я делаю это «‘ из tkinter import * win = Tk() win.geometry(«800×600») win.title(«hhh») ls = [‘/home/decode/Images/ImageDB/tom.png’, ‘/home/decode/Images/ImageDB /aub.png’,’/home/decode/Images/ImageDB/res.png’] im0 = Фотоизображение (file= ls[0]) im1 = Фотоизображение (file= ls[1]) im2 = Фотоизображение (file= ls[2]) btn0 = Button(win, image = im0).pack() btn1 = Button(win, image = im1).pack() btn2 = Button(win, image = im2).pack() win.mainloop() «‘ но я хочу сделать это в цикле

Ответ №1:

Вы хотите использовать библиотеку PIL и PhotoImage, например:

 from tkinter import *
from PIL import* Image,Tkimage

win = Tk()
win.geometry("800x600")
win.title("hhh")

photo_1=PhotoImage(file=r'D:/button.png')

photo_image=Button(win,image=photo_1)
photo_image.place(x=10,y=0,height=12,width=12)

win.mainloop()
  

Комментарии:

1. В этом случае PIL не требуется. Современные версии tkinte поддерживают png.