Проблемы с получением изображения для отображения в TKinter - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть следующий упрощенный код из моего проекта. Моя ошибка заключается в строке

self.displayimg = tk.Button(self.frame, text = 'Display', width = 25, command = lambda: show)

. Сообщение spyder об ошибке дает мне сообщение о том, что имя «show» не определено, хотя это функция, которую я четко определил в классе.

from PIL import Image, ImageTk
import matplotlib.pyplot as plt
x = 100
y = 100
xtmi = 200
xtma = 205 
xs = 1024
ytmi = 500
ytma = 505
ys = 768
xarr = np.zeros(x)
yarr = np.zeros(y)
output = np.meshgrid(xarr,yarr)
output=output[0]
def mkPIL(array):
    im = Image.fromarray(np.uint8(array))
    return im
im = mkPIL(output)
plt.imshow(im, cmap='gray')


import tkinter as tk
from tkinter import Canvas, Label


root = tk.Tk()

root.mainloop()


class Manipulation:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
        self.frame.pack()
        self.kill = tk.Button(self.frame, text = 'Kill', width = 25, command = self.close)
        self.kill.pack()
        self.displayimg = tk.Button(self.frame, text = 'Display', width = 25, command = lambda: show)
        self.displayimg.pack()
    def close(self): 
        self.master.destroy()
    def show(): 
        img = ImageTk.PhotoImage(im)
        panel = Label(root, image=im)
        panel.image = img
        panel.place(x=0,y=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...