キャンバスでズームインおよびズームアウトしようとしています。しかし、ズームすると、キャンバスはまだ空です。これが私のコードです
teste.py
from tkinter import *
from observable import *
class Model(Observable):
def __init__(self):
Observable.__init__(self)
self.scale = 1
File = "image.png"
self.orig_img = PhotoImage(file = File)
def zoom(self,event): # window binded width "<MouseWheel>"
if event.delta > 0:
self.scale += 1
elif event.delta < 0:
self.scale -= 1
self._docallUpdate(self)
class View(Canvas):
def __init__(self, master):
Canvas.__init__(self, master)
def update(self, model):
self.delete("all")
if model.scale > 0:
img = model.orig_img.zoom(model.scale)
elif model.scale < 0:
img = model.orig_img.subsample(abs(model.scale))
else: img = model.orig_img
print(img)
self.create_image(0, 0, image= img, anchor = "nw")
Observers.py
class Observable:
def __init__(self):
self.observers = {}
def addObserver(self, ob):
self.observers[ob] = 1
def delObserver(self, element):
del self.observers[element]
def _docallUpdate(self, mod):
for ob in self.observers:
ob.update(mod)