В чем могут заключаться ошибки?

Не понимаю в чём ошибки?

Ошибки:

Traceback (most recent call last):
File "c:/Users/общак/Videos/import tkinter.py", line 56, in
app = Example()
File "c:/Users/общак/Videos/import tkinter.py", line 21, in init self.master.title("Всплывающие окна с уведомлениями")
AttributeError: 'Example' object has no attribute 'master'

Код:

from os import path
from tkinter import *
from tkinter import Tk, BOTH
from tkinter.ttk import Frame, Button
from tkinter import messagebox as mbox
import tkinter as tk
from PIL import ImageTk, Image
import os
import tkinter
from PIL import Image, ImageTk
 
 
class Example(Frame):
    
 
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        self.master("Всплывающие окна с уведомлениями")
        self.pack()
 
        error = Button(self, text="Ошибка",command=self.onError)
        error.grid(padx=5, pady=5)
        warning = Button(self, text="Предупреждение", command=self.onWarn)
        warning.grid(row=1, column=0)
        question = Button(self, text="Вопрос", command=self.onQuest)
        question.grid(row=0, column=1)
        inform = Button(self, text="Информация", command=self.onInfo)
        inform.grid(row=1, column=1)
        my_event_handler = Button(self, text="Картинка", command=self.my_event_handler)
        my_event_handler.grid(row=2, column=0,padx=50)

    # Добавим изображение
        self.canvas = tkinter.Canvas(self.root, height=1200, width=2200)
        self.c_image = self.canvas.create_image(0, 0, anchor='nw', image=self.photo)
        self.canvas.grid(row=2, column=1)
        self.root.mainloop()    

    def onError(self):
        mbox.showerror("Ошибка", "Запуск программы невозможен, так как на компьютере отсутствует"
"C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30 729.6871_none_50944e7cbcb706e5\MSVCP90.dll. Попробуйте переустановить программу. ")
 
    def onWarn(self):
        mbox.showwarning("Предупреждение", "Поддержка Windows 10 завершается 18 апреля 2022 г. Щелкните здесь, чтобы узнать больше.")
 
    def onQuest(self):
        mbox.askquestion("Вопрос", "Вы действительно хотите удалить Visual Studio Code и все компоненты программы?")
 
    def onInfo(self):
        mbox.showinfo("Информация", "Нажатие завершено")

    def my_event_handler(self):
        print("my_event_handler")
        img = ImageTk.PhotoImage(Image.open("XZ.jpg"))
        self.imgLabel.configure(image=img)
        self.imgLabel.image = img 

def main():
    root = Tk()
    root.geometry("430x160+200+200")
    root["bg"] = "#DBE2EF"
    root.mainloop()
ex = Example()
 
if __name__ == '__main__':
    main()

Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так

from os import path
from tkinter import *
from tkinter import Tk, BOTH
from tkinter.ttk import Frame, Button
from tkinter import messagebox as mbox
import tkinter as tk
from PIL import ImageTk, Image
import os
import tkinter
from PIL import Image, ImageTk
 
 
class Example(Frame):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
#        self.master("Всплывающие окна с уведомлениями")
        self.master.title("Всплывающие окна с уведомлениями")               # +++
        self.pack()
 
        error = Button(self, text="Ошибка",command=self.onError)
        error.grid(padx=5, pady=5)
        warning = Button(self, text="Предупреждение", command=self.onWarn)
        warning.grid(row=1, column=0)
        question = Button(self, text="Вопрос", command=self.onQuest)
        question.grid(row=0, column=1)
        inform = Button(self, text="Информация", command=self.onInfo)
        inform.grid(row=1, column=1)
        my_event_handler = Button(self, text="Картинка", command=self.my_event_handler)
        my_event_handler.grid(row=2, column=0,padx=50)

    # Добавим изображение
#        self.canvas = tkinter.Canvas(self.root, height=1200, width=2200)
        self.canvas = tkinter.Canvas(self, height=1200, width=2200)
        
# +++
        image = Image.open('Ok.png')                                   # +++
        self.photo = ImageTk.PhotoImage(image)                         # +++
        
        self.c_image = self.canvas.create_image(0, 0, anchor='nw', image=self.photo)
        self.canvas.grid(row=2, column=1)
#        self.root.mainloop()    

        self.imgLabel = Label(self)                                     # +++
        self.imgLabel.place(x=40, y=100, width=80, height=80)           # +++
        

    def onError(self):
        mbox.showerror("Ошибка", "Запуск программы невозможен, так как на компьютере отсутствует"
"C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30 729.6871_none_50944e7cbcb706e5\MSVCP90.dll. Попробуйте переустановить программу. ")
 
    def onWarn(self):
        mbox.showwarning("Предупреждение", "Поддержка Windows 10 завершается 18 апреля 2022 г. Щелкните здесь, чтобы узнать больше.")
 
    def onQuest(self):
        mbox.askquestion("Вопрос", "Вы действительно хотите удалить Visual Studio Code и все компоненты программы?")
 
    def onInfo(self):
        mbox.showinfo("Информация", "Нажатие завершено")

    def my_event_handler(self):
        print("my_event_handler")
        img = ImageTk.PhotoImage(Image.open("XZ.jpg"))
        self.imgLabel.configure(image=img)
        self.imgLabel.image = img 

def main():
    root = Tk()
    root.geometry("430x360+200+200")
    root["bg"] = "#DBE2EF"
    
    ex = Example()                                                   # +++
    root.mainloop()
#ex = Example()
 
if __name__ == '__main__':
    main()

введите сюда описание изображения

→ Ссылка