所以我在一个类上创建了一个方法,该方法创建了类电阻器的实例,当创建电阻器时,图像将显示在tkinter画布上。还有一种方法允许移动图像,所以当我创建第一个实例时,我移动图像,然后创建第二个实例,但当我这样做时,第一个图像消失了,但我相信发生的事情就是移动第二个图像的确切位置,但我不知道为什么会发生这种情况。代码如下:
class SideBar():
def createResistor(self, value, name): # Method used to create instance of class Resistor
Res1 = Resistor(self.root, value, name)
self.resList.append(Res1)
class Resistor():
def cargarimg(self, archivo): # Se carga imagen
ruta = os.path.join('img', archivo)
imagen = PhotoImage(file = ruta)
return imagen
def show_res(self):
resImage = self.cargarimg('Res.png')
MA.MP.paintWindow.image = resImage
MA.MP.paintWindow.create_image(100, 100, image = resImage)
def move(self, e): # Method that allows image to be moved
resImage = self.cargarimg('Res.png')
MA.MP.paintWindow.image = resImage
MA.MP.paintWindow.create_image(e.x, e.y, image = resImage)
def __init__(self, root, resistance, name):
self.root = root
self.resistance = resistance
self.name = name
self.x = 50
self.y = 50
self.show_res()
MA.MP.paintWindow.bind('<B1-Motion>', self.move)
更新我已经通过对坐标x和y参数进行了测试,但第一个图像仍然消失,这使我相信,出于某种原因,第一个图像被删除,或者被第二个图像替换
解决此问题的最简单方法是在加载方法上使用lru_缓存
这将替换图像引用保存,因此您可以从所有方法中删除此行
相关问题 更多 >
编程相关推荐