皮尔金特不适合我!我做错了什么

2024-06-28 11:43:10 发布

您现在位置:Python中文网/ 问答频道 /正文

首先:

我知道这里关于Stackoverflow有很多关于这个主题的例子、建议、代码片段等等。我读了大部分的书,试了试,但都不适合我。。你知道吗

我的问题是:

一旦我启动脚本,它就会显示一个完美大小的GUI。 但我所期待的图像只是一片空白。你知道吗

我猜:

我想我没有正确使用垃圾收集。这是真的吗? 如果是,我应该改变什么?你知道吗

我的问题是:

如果垃圾收集不是问题所在,我应该编辑什么?为什么? 顺便说一下,我使用的是OSXYosemite和Python2.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()

谢谢你!!你知道吗


Tags: 代码imageimportselfdefrootcollection垃圾
1条回答
网友
1楼 · 发布于 2024-06-28 11:43:10

下面是正确的正在运行的方法(实际调用时,请参阅问题的注释):

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

    self._backgroundCanvas = self._bgimageTk

您不需要_backgroundCanvas属性,也只需在构造函数中删除它。你知道吗

相关问题 更多 >