I am trying to fetch the data from text variable and image data in a function name loopCap and display it in __init__ function where I have created a canvas but due to mentioned below error I am not able to move further
Update: I was able to update the text but Image is still the major issues
For Text Error:
Update: I was able to update the text but Image is still the major issues
For Text Error:
*(args + self._options(cnf, kw)))) _tkinter.TclError: unknown option "-textvariable"For Image Error:
self.put_photo = canvas.create_image(70, 250, image=self.photo, anchor='nw') AttributeError: 'StartPage' object has no attribute 'photo'Actual Code Sample:
import tkinter as tk from tkinter import * from tkinter.filedialog import asksaveasfile from tkinter import messagebox from PIL import ImageTk, Image im = "BG.jpg" class SampleApp(tk.Tk): def __init__(self): tk.Tk.__init__(self) self._frame = None self.ard_stat = read_json(JSON_PATH) self.switch_frame(StartPage) def switch_frame(self, frame_class): """Destroys current frame and replaces it with a new one.""" new_frame = frame_class(self) if self._frame is not None: self._frame.destroy() self._frame = new_frame self._frame.pack() class StartPage(tk.Frame): def loopCap(self): with open(JSON_PATH) as json_file1: self.data = json.load(json_file1) print(self.data) if self.data['status'] == 'ACTIVE': # and (self.data['RH_img']!= 'null' or self.data['LH_img']!= 'null') a = self.text.set(self.data['status']) if self.data['RH_img'] == 'NA': self.img = Image.open(Press) self.img.load() self.photo = ImageTk.PhotoImage(self.img) self.label['image'] = self.photo self.master.after(500, self.loopCap) def __init__(self, master): super().__init__(master) self.master.config(bg='black') Frame2 = tk.Frame(self.master) Frame2.pack(fill='both',expand = True) self.photo_back = ImageTk.PhotoImage(im) lab_1 = tk.Label(Frame2, image=self.photo_back) lab_1.image = self.photo_back lab_1.place(x=0, y=0, relwidth=1, relheight=1) canvas = Canvas(Frame2, width=1000, height=700) canvas.place(x=0, y=0, relwidth=1, relheight=1) canvas.create_image(0, 0, image=self.photo_back, anchor='nw') self.text = tk.StringVar() canvas.create_text(230, 170, fill="white", font="Times 20 bold", textvariable=self.text, anchor="w") self.label = tk.Label(canvas) self.put_photo = canvas.create_image(70, 250, image=self.photo, anchor='nw') canvas.itemconfig(self.put_photo, image=self.photo) self.master.after(500, self.loopCap) if __name__ == "__main__": app = SampleApp() app.mainloop()