tkinter 弹窗
问题:使用 for 循环,只显示最后一张图片
解决:
from tkinter import *
from BLL.MilktyteaShop import *
if __name__ == '__main__':
# 创建弹窗
q = Tk()
q.title('奶茶店') # 标题
q.geometry('600x500+50+50') # 大小与位置
q.iconbitmap('img/tt.ico') # 标题图片(.ico 格式)
li = MilktyeaShop.get_Milktytea_list() # (静态直接写 类 )获得列表信息(列表中为对象)
img_list = [] # 准备 把图片存入,就可输出每一个 下标选择(重要)
i = 0 # 计数器(图片切换的数)
for obj in li: # li奶茶信息,循环出 列表中 的每个对象(循环开始)
pic = PhotoImage(file=f'img/{obj.pic}') # 图片(取出(图片名称) 》》 obj 对象;.pic 对象的属性)
img_list.append(pic) # 图片 存入 列表(暂时固定)、
# 主体(文本框)
Label(q, image=img_list[i], width=65, height=60, bg='#FFABAB').grid(row=i, column=0) # img_list 列表取值(图片),每个图片都能显示
i = i+1 # 负责切换
q.mainloop() # 显示弹窗
看到 for 上方 img_list 列表
将图片信息(PhotoImage(file=?))追加到 img_list 列表 中
循环输出图片时,以列表下标选择图片
这样便可输出所有图片