栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Tkinter中使用鼠标事件绘制矩形

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Tkinter中使用鼠标事件绘制矩形

我从引用的问题中修改了代码。现在,当鼠标在画布上拖动时,它显示矩形。画布显示Lena图像。

import tkinter as tk # this is in python 3.4. For python 2.x import Tkinterfrom PIL import Image, ImageTkclass ExampleApp(tk.Tk):    def __init__(self):        tk.Tk.__init__(self)        self.x = self.y = 0        self.canvas = tk.Canvas(self, width=512, height=512, cursor="cross")        self.canvas.pack(side="top", fill="both", expand=True)        self.canvas.bind("<ButtonPress-1>", self.on_button_press)        self.canvas.bind("<B1-Motion>", self.on_move_press)        self.canvas.bind("<ButtonRelease-1>", self.on_button_release)        self.rect = None        self.start_x = None        self.start_y = None        self._draw_image()    def _draw_image(self):         self.im = Image.open('./resource/lena.jpg')         self.tk_im = ImageTk.PhotoImage(self.im)         self.canvas.create_image(0,0,anchor="nw",image=self.tk_im)    def on_button_press(self, event):        # save mouse drag start position        self.start_x = event.x        self.start_y = event.y        # create rectangle if not yet exist        #if not self.rect:        self.rect = self.canvas.create_rectangle(self.x, self.y, 1, 1, fill="black")    def on_move_press(self, event):        curX, curY = (event.x, event.y)        # expand rectangle as you drag the mouse        self.canvas.coords(self.rect, self.start_x, self.start_y, curX, curY)    def on_button_release(self, event):        passif __name__ == "__main__":    app = ExampleApp()    app.mainloop()

黑色正方形绘制在图像顶​​部。希望这可以帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号