|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lzb1001 于 2022-5-31 21:00 编辑
# 此例演示Canvas画布组件
from tkinter import *
root = Tk()
w = Canvas(root, width=400, height=200, background='white')
w.pack()
def paint(event):
x1, y1 = (event.x - 1), (event.y - 1)
x2, y2 = (event.x + 1), (event.y + 1)
w.create_oval(x1, y1, x2, y2, fill='red', width=2)
w.bind('<B1-Motion>', paint)
Label(root, text='按住鼠标左键并移动,开始绘制属于你自己的版图吧…',fg='blue', font=('青春记忆体', 12)).pack(side=BOTTOM)
root.title('Canvas组件教学示例')
mainloop()
------------------------------------------
Windows 10 专业版 | Python 3.7.6
------------------------------------------
【我的问题】
1、
x1, y1 = (event.x - 1), (event.y - 1)
x2, y2 = (event.x + 1), (event.y + 1)
没看懂什么意思呢?
测试后换成下面这样也可以:
x1, y1 = (event.x + 1), (event.y + 1)
x2, y2 = (event.x - 1), (event.y - 1)
2、小甲鱼代码中fill=‘red’,但画出来的线是黑色的,
弹幕中有人说要把event.x后面的值调大就能发现了,但我试了下event.x后面的数字都改成5,但运行后拖动鼠标出来的好像是红色的点在黑色的线中,
是不是应该改成outline=‘’red?这样画出来的线才是红色的
3、
Canvas中B1-Motion表示鼠标左键,B2-Motion表示鼠标中键,B3-Motion表示鼠标右键
而教材中Tag组件中(见15.11.3中的p15_27.py举例)用Button-1表示鼠标左键,Button-2代表鼠标中键(即滚轮),Button-3代表鼠标右键
Canvas中B1-Motion、Tag组件中Button-1之间有何区别呢?
我尝试将代码中的B1-Motion替换成Button-1,但运行后按住鼠标左键并拖动,但无法画线,画布上只有点,所以B1-Motion在代码里表示鼠标左键呢,还是表示按下鼠标左键并拖动呢?
******************************
感谢大神不吝赐教,为新手解疑释惑。
赠人玫瑰,手有余香,好人一生平安!
|
|