首页 > 解决方案 > 从课堂调用时图像未出现

问题描述

不知道发生了什么,但我无法让 Test_Image.jpg 出现,文本看起来不错。

我正在使用 PyCharm 作为我的 IDE(现在只是提供随机信息,堆栈溢出希望我这样做)我已经对这个主题进行了一些搜索,但没有得到任何帮助......

# - Script Handler

# ==== Script Info ====
#   6 / 10 / 2020
# Gun_Generator.Script_Handler.py

# ==== Description ===
# Takes information from other scripts and displays them on a GUI

# ==== Code ====
# Imports Packages
import PIL.Image
from PIL import ImageTk
from tkinter import *
import os

class GUI_Controler:
    def __init__(self, width, height):
        self.instance_Window = None
        self.temp_Canvas = None

        self.CreateWindow(width, height)

    def CreateWindow(self):
        self.instance_Window = Tk(className = "NAME")

    def CreateWindow(self, width, height):
        self.instance_Window = Tk(className = "NAME")
        self.instance_Window.minsize(width, height)

    def Load_Image(self, image_To_Load):
        loadedImage = PIL.Image.open(str(image_To_Load))
        self.convertedImage = PhotoImage(file = image_To_Load)

        self.temp_Canvas = Canvas(self.instance_Window, height=self.instance_Window.winfo_height(), width=self.instance_Window.winfo_width())
        self.temp_Canvas.pack()
        self.temp_Canvas.create_image(0, 0, image=self.convertedImage, anchor=CENTER)

        loadedImage.save("C:/Users/Luke's PC/PycharmProjects/Gun_Generator/Resources/Images/Tests/Test_Image_SAVED.png")

    def Load_Text(self, text):
        text_label = Label(self.instance_Window, text = text)
        text_label.pack()


resource_dir = "C:/Users/Luke's PC/PycharmProjects/Gun_Generator/Resources"

main = GUI_Controler(750, 500)

main.Load_Image(resource_dir + "/Images/Tests/Test_Image.jpg")
main.Load_Text("test")

mainloop()

标签: pythontkinterpython-imaging-library

解决方案


我已经检查了您的代码,从您的班级中加载图像没有任何问题。但是,我注意到 create_image 在这里引起了问题。我不完全确定为什么,但我可以回答您的问题,向您展示如何使用标签图像在小部件上显示您的图像。

# - Script Handler

# ==== Script Info ====
#   6 / 10 / 2020
# Gun_Generator.Script_Handler.py

# ==== Description ===
# Takes information from other scripts and displays them on a GUI

# ==== Code ====
# Imports Packages
import PIL.Image
from PIL import ImageTk
from tkinter import *
import os

class GUI_Controler:
    def __init__(self, width, height):
        self.instance_Window = None
        self.temp_Canvas = None

        self.CreateWindow(width, height)

    def CreateWindow(self):
        self.instance_Window = Tk(className = "NAME")

    def CreateWindow(self, width, height):
        self.instance_Window = Tk(className = "NAME")
        self.instance_Window.minsize(width, height)

    def Load_Image(self, image_To_Load):
        loadedImage = PIL.Image.open(str(image_To_Load))
        self.convertedImage = PhotoImage(file = image_To_Load)

        self.temp_Canvas = Canvas(self.instance_Window, height=self.instance_Window.winfo_height(), width=self.instance_Window.winfo_width())
        self.temp_Canvas.pack()
        label=Label(self.temp_Canvas, image=self.convertedImage, width=400, height=400)
        label.pack(side=TOP)

        loadedImage.save("C:/Users/Luke's PC/PycharmProjects/Gun_Generator/Resources/Images/Tests/Test_Image_SAVED.png")

    def Load_Text(self, text):
        text_label = Label(self.instance_Window, text = text)
        text_label.pack()


resource_dir = "C:/Users/Luke's PC/PycharmProjects/Gun_Generator/Resources"

main = GUI_Controler(750, 500)

main.Load_Image(resource_dir + "/Images/Tests/Test_Image.jpg")
main.Load_Text("test")

mainloop()

推荐阅读