python画矩形函数drawrectangle_python – 在Tkinter中使用鼠标事件绘制矩形

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

import tkinter as tk # this is in python 3.4. For python 2.x import Tkinter

from PIL import Image, ImageTk

class 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("", self.on_button_press)

self.canvas.bind("", self.on_move_press)

self.canvas.bind("", 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):

pass

if __name__ == "__main__":

app = ExampleApp()

app.mainloop()

黑色方块绘制在图像的顶部.希望这可以帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值