#python #tkinter
#python #tkinter
Вопрос:
Я смотрел это руководство по YouTube и (как мне показалось) получил лучшую идею решения проблемы создания приложения для просмотра изображений.
Но при вводе ничего не происходит, и я не понимаю почему, я думаю, что, возможно, я совершенно неправильно понял список, поскольку он не начинается с первого изображения (индекс 0).
Код здесь
from tkinter import *
from PIL import ImageTk,Image
i = 0
root = Tk()
root.title("Learning to code")
root.iconbitmap('blue.PNG')
my_img1 = ImageTk.PhotoImage(Image.open("picsme1.JFIF"))
my_img2 = ImageTk.PhotoImage(Image.open("picsme2.JPG"))
my_img3 = ImageTk.PhotoImage(Image.open("picsme3.JPG"))
my_img4 = ImageTk.PhotoImage(Image.open("picsme4.JPG"))
my_img5 = ImageTk.PhotoImage(Image.open("picspop.JPG"))
img_list = [my_img1,my_img2,my_img3,my_img4,my_img5]
my_label = Label(image=img_list[i])
my_label.grid(row=0,column=0,columnspan=3)
def f_fwd():
global i
global my_label
if i < 4 :
my_label.grid_forget()
i = 1
my_label = Label(image=img_list[i])
my_label.grid(row=0,column=0,columnspan=3)
def f_bwd():
return
button_bwd = Button(root, text= "<<")
button_bwd.grid(row=1,column=0)
button_quit =Button(root, text="Exit", command= root.quit)
button_quit.grid(row=1,column=1)
button_fwd = Button(root, text=">>", command=f_fwd())
button_fwd.grid(row=1,column=2)
root.mainloop()
Извините, если я плохо сформулировал проблему.
Я ожидал, что индекс увеличится и отобразит следующее изображение в списке, когда f_fwd
функция вызывается из команды button, и я не понимаю, почему она не работает.
Комментарии:
1.
i = 1
вероятно, должно бытьi = 1
2.
command=f_fwd
без()
3. Решаемая. Большое спасибо, ребята <3
4. Почему вы удаляете метку из сетки, а затем возвращаете ее обратно? Все, что вам нужно сделать в этом цикле, это использовать
my_label.configure(image=img_list[i])
для установки нового изображения наLabel
. Такжеmy_label
это ужасное имя. Это не дает вам ни малейшего представления о том, для чего оно используется.img_slide
или что-то в этом роде имело бы больше смысла.