我知道Stackoverflow上有大量关于此主题的示例 建议,代码段等等。我阅读了大部分内容,尝试了,但他们并没有为我工作 ..
一旦我启动脚本它就会显示一个完美尺寸的GUI。 但是我期待Image的位置只有空白区域。
我想我没有正确使用垃圾收集。这是真的? 如果是,我应该改变什么?
如果垃圾收集不是问题,我应该编辑什么?为什么? 顺便说一句,我使用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()
答案 0 :(得分:0)
以下是更正后的正在运行的方法(当它实际调用时,请参阅问题的评论):
def backgroundImage(self):
# Loading Image
self._bgimage = Im.open("...")
self._bgimageTk = ImageTk.PhotoImage(self._bgimage)
self._backgroundCanvas = self._bgimageTk
您不需要_backgroundCanvas
属性,只需在构造函数中删除它。