繁体   English   中英

PIL-Tkinter对我不起作用! 我做错了

[英]PIL - Tkinter doesn't work for me! What I'm doing wrong

首先:

我知道在Stackoverflow上有大量关于此主题的示例 建议代码段等。 我读了其中的大多数内容,尝试了一下, 但它们对我没有用 ..

我的问题:

一旦启动脚本,它将以合适的大小显示一个GUI。 但是在我期望有图像的地方,只有空白。

我猜:

我认为我没有正确使用垃圾收集。 这是真的? 如果是,我应该更改什么?

我的问题:

如果不是垃圾收集问题,我应该编辑什么,为什么? 顺便说一下,我正在使用OS X Yosemite和python 2.6。

我的代码:

import Image as Im, ImageTk
from Tkinter import *

class Simulator:

    def __init__(self):
        # Init root
        self.root = Tk()
        self.root.geometry("1171x900")
        self.root.title("Cockpit Simulation")

        # Anti Garbage Collection
        self._antiGarb = None

    def backgroundImage(self):
        # Loading Image
        self._bgimage = Im.open("Image/mask.png")
        self._bgimageTk = ImageTk.PhotoImage(self._bgimage)


        # Anti Garbage Collection
        self._antiGarb.background = self._bgimageTk


        # Background Canvas Widget
        self._backgroundCanvas = Canvas(self.root, width = 1170, height = 780)
        self._backgroundCanvas.pack()
        self._backgroundCanvas.create_image(0,0, image = self._bgimageTk, anchor = NW)


# Mainloop
main = Simulator()
main.root.mainloop()

谢谢!!

这是经过纠正的正在运行的方法(实际上被调用时,请参阅问题的注释):

def backgroundImage(self):
    # Loading Image
    self._bgimage = Im.open("...")
    self._bgimageTk = ImageTk.PhotoImage(self._bgimage)

    self._backgroundCanvas = self._bgimageTk

您不需要_backgroundCanvas属性,也只需在构造函数中将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM