从列表框选择更新tkinter中的图像

时间:2018-12-12 21:09:54

标签: python user-interface tkinter

我有一个程序,该程序用文本文件中的信息填充7个文本框。文本文件的第一行列表是png,我需要将其与相应的信息一起显示。

到目前为止,该程序功能正常,并且顶部显示了初始图像。但是我在执行代码时遇到了问题,我需要用其余信息来更新图像。

根据我需要提供的信息,下面是三行内容,我无法弄清楚为什么它不能与程序的其余部分一起使用,要么告诉我徽标未定义,要么完全消失中断程序,没有错误。

logo.append(tk.PhotoImage(file="images/"+ lineList[0]))

lab8.configure(image=logo[len(logo)-1])

lab8.image= logo[len(logo)-1]

程序的其余部分:

import tkinter as tk

window = tk.Tk()

window.geometry("300x600")

window.title("Realtor INC.")

##

def displayItem(event):

     line=lst1.get(lst1.curselection())

     lineList=line.split(':')

     txt1.delete(1.0,tk.END)

     txt1.insert(tk.END,lineList[0])

     txt2.delete(1.0,tk.END)

     txt2.insert(tk.END,lineList[1])

     txt3.delete(1.0,tk.END)

     txt3.insert(tk.END,lineList[2])

     txt4.delete(1.0,tk.END)

     txt4.insert(tk.END,lineList[3])



     txt5.delete(1.0,tk.END)

     txt5.insert(tk.END,lineList[4])



     txt6.delete(1.0,tk.END)

     txt6.insert(tk.END,lineList[5])



     txt7.delete(1.0,tk.END)

     txt7.insert(tk.END,lineList[6])

##logo

logo=[]

logo.append(tk.PhotoImage(file="logo.png"))

lab8=tk.Label(image=logo[0])

lab8.grid(column=0,row=0, columnspan=2)





txt1=tk.Text(width=20, height=1)

txt2=tk.Text(width=20, height=1)

txt3=tk.Text(width=20, height=1)

txt4=tk.Text(width=20, height=1)

txt5=tk.Text(width=20, height=1)

txt6=tk.Text(width=20, height=1)

txt7=tk.Text(width=20, height=1)





lab1=tk.Label(text="House Image Name")

lab2=tk.Label(text="Price")

lab3=tk.Label(text="Number of Bedrooms")

lab4=tk.Label(text="Number of Bathrooms")

lab5=tk.Label(text="Location")

lab6=tk.Label(text="Square Feet")

lab7=tk.Label(text="Availability")



lst1=tk.Listbox(height=10, width=40)



lab1.grid(column=0, row=1), txt1.grid(column=1, row=1)

lab2.grid(column=0, row=2), txt2.grid(column=1, row=2)

lab3.grid(column=0, row=3), txt3.grid(column=1, row=3)

lab4.grid(column=0, row=4), txt4.grid(column=1, row=4)

lab5.grid(column=0, row=5), txt5.grid(column=1, row=5)

lab6.grid(column=0, row=6), txt6.grid(column=1, row=6)

lab7.grid(column=0, row=7), txt7.grid(column=1, row=7)



lst1.grid(column=0, row=10, columnspan=2)



infile = open("houses.txt", 'r')



for line in infile:

     ##print(line, end="")

     lst1.insert(tk.END, line)

infile.close()

lst1.bind("<<ListboxSelect>>", displayItem)

window.mainloop()

0 个答案:

没有答案