#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.