Tkinter:不会在另一个父画布内移动裁剪图像子画布

问题描述

我的目标是:

  1. 裁剪图像并存储在子画布中。 (完成)
  2. 通过鼠标拖动将其移动到父画布周围。 (代码不起作用) 我的代码
import tkinter as tk
from PIL import Image,ImageTk

class MainWindow:
    def __init__(self):
        self.mainwindow = tk.Tk()
        #self.pack(expand=Y,fill=BOTH)

        self.img = Image.open('D:/Desert.jpg')
        self.outer_image = ImageTk.PhotoImage(self.img)
        self.outer_canvas = tk.Canvas(self.mainwindow,width=600,height=400)
        self.outer_canvas.create_image(0,anchor=tk.NW,image = self.outer_image)
        self.outer_canvas.pack(fill=tk.BOTH)
        
        self.inner_canvas = tk.Canvas(self.outer_canvas,width=100,height=100)
        # Placing inner_canvas inside the outer_canvas to hold crop image from outer canvas
        self.outer_canvas.create_window(0,window=self.inner_canvas)
        
        self.crop_image = self.img.crop((300,300,400,400))
        self.img = ImageTk.PhotoImage(self.crop_image)
        self.inner_canvas.create_image(0,image = self.img)

        # Add event to inner_canvas so that it can move around outer canvas
        self.inner_canvas.bind('<ButtonPress-1>',self.on_mouse_down_inner_canvas)
        self.inner_canvas.bind('<B1-Motion>',self.on_mouse_drag_inner_canvas)

    def on_mouse_down_inner_canvas(self,event):
        self.lastx = event.x
        self.lasty = event.y

    def on_mouse_drag_inner_canvas(self,event):
        self.outer_canvas.move(tk.CURRENT,event.x - self.lastx,event.y - self.lasty)
        self.lastx = event.x
        self.lasty = event.y


if __name__ == "__main__":
    root = MainWindow()

和GUI了解

有人可以帮助我摆脱这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)