0

我正在尝试在画布中放大和缩小。但是当我放大时,画布仍然是空的。这是我的代码

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")

观察者.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)
4

0 回答 0