在多次渲染时,Python3 PhotoImage会在标签上重复
我有一个Python3Tkinter程序,它应该是从一个特殊的文件格式渲染一个图像在多次渲染时,Python3 PhotoImage会在标签上重复,python,tkinter,Python,Tkinter,我有一个Python3Tkinter程序,它应该是从一个特殊的文件格式渲染一个图像 from tkinter import * image = [] path = Tk() display = Toplevel() display.wm_title("RCSVvisual") display.wm_iconbitmap("favicon.ico") path.wm_title("RCSVpath") path.wm_iconbitmap("favicon.ico") entry1 =
from tkinter import *
image = []
path = Tk()
display = Toplevel()
display.wm_title("RCSVvisual")
display.wm_iconbitmap("favicon.ico")
path.wm_title("RCSVpath")
path.wm_iconbitmap("favicon.ico")
entry1 = Entry(path)
entry1.pack(side=LEFT)
photo = PhotoImage(width=240, height=180)
def refresh():
file_path = entry1.get()
with open(file_path, "r") as file:
for line in file:
thisLine = line.strip()
thisArray = thisLine.split(",")
image.append(thisArray)
for c1 in range(0, len(image)):
for c2 in range(0, len(image[c1])):
photo.put(image[c1][c2], (c1, c2))
button = Button(path, text="Open File", command=refresh)
button.pack(side=LEFT)
label = Label(display, image=photo)
label.pack()
path.mainloop()
display.mainloop()
这是我测试它的文件:
#F00,#0F0,#00F,#F00
#0F0,#00F,#F00,#0F0
#00F,#F00,#0F0,#00F
#F00,#0F0,#00F,#F00
但是,如果您多次运行该程序,则图像不会替换旧图像;而是显示在原始图像的右侧。我做错什么了吗?是否应该重新将.pack()添加到目标标签?您总是将其附加到
图像中
若要创建新映像,应首先清空现有列表
def refresh():
image = []
file_path = entry1.get()
....
而且,几乎总是在程序中只需要一个主循环。您应该删除display.mainloop()
行