如何在 python 中修复 NameError

我正在尝试将两个窗口作为面板 A 和面板 B,但我收到以下错误


如果 PanelA 为 None 或 PanelB 如果 None: NameError: name 'panelA' is not defined


from tkinter import *

from PIL import Image, ImageTk

from tkinter import filedialog

import cv2


def select_image():

        global panelA, panelB

        path = filedialog.askopenfilename()

        if len(path) > 0:

                image = cv2.imread(path)

                gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

                edged = cv2.Canny(gray, 50, 100)

                image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

                image = Image.fromarray(image)

                edged = Image.fromarray(edged)

                image = ImageTk.PhotoImage(image)

                edged = ImageTk.PhotoImage(edged)    

        if panelA is None or panelB is None:

                panelA = Label(image=image)

                panelA.image = image

                panelA.pack(side="left", padx=10, pady=10)

                panelB = Label(image=edged)

                panelB.image = edged

                panelB.pack(side="right", padx=10, pady=10)

        else:

                panelA.configure(image=image)

                panelB.configure(image=edged)

                panelA.image = image

                panelB.image = edged

root = Tk()

panelA = None

panelB = None


btn = Button(root, text="Select an image", command=select_image)

btn.pack(side="bottom", fill="both", expand="yes", padx="10", pady="10")


root.mainloop()


守着一只汪
浏览 242回答 2
2回答

温温酱

您定义了全局变量,但如果您想在 if 语句中比较它们,还需要初始化它们:global panelA, panelBpanelA, panelB = None, None

慕娘9325324

请修正你的缩进。和 panelA, panelB =''
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python