
"""
draw elastic shapes on a canvas on drag, move on right click
see canvasDraw_tags*.py for extensions with tags and animation
"""
from tkinter import *
trace = False
class CanvasEventsDemo:
def init (self, parent=None):
canvas = Canvas(width=300, height=300, bg='beige')
canvas.pack()
canvas.bind('<ButtonPress-1>', self.onStart) # click
canvas.bind('<B1-Motion>', self.onGrow) # and drag
canvas.bind('<Double-1>', self.onClear) # delete all
canvas.bind('<ButtonPress-3>', self.onMove) # move latest
self.canvas = canvas
self.drawn = None
self.kinds = [canvas.create_oval, canvas.create_rectangle]
if name == ' main ':
CanvasEventsDemo()
mainloop()
from tkinter import *
def onCanvasClick(event):
print('Got canvas click', event.x, event.y, event.widget)
def onObjectClick(event):
print('Got object click', event.x, event.y, event.widget, end=' ')
print(event.widget.find_closest(event.x, event.y)) # find text object's ID
root = Tk()
canv = Canvas(root, width=100, height=100)
obj1 = canv.create_text(50, 30, text='Click me one')
obj2 = canv.create_text(50, 70, text='Click me two')
canv.bind('<Double-1>', onCanvasClick) # bind to whole canvas
canv.tag_bind(obj1, '<Double-1>', onObjectClick)# bind to drawn item
canv.tag_bind(obj2, '<Double-1>', onObjectClick)# a tag works here too
canv.pack()
root.mainloop()
类似HTML5的canvas一样,在python语言的GUI可视化设计中,也有画布canvas。在canvas上,可以绘制直线、矩形、圆形等。第一步,打开已创建python项目的eclipse工具,新建python文件,并定义一个窗口。
第二步,定义一个拖动按钮,初始化按钮文本内容,添加一个事件。
第三步,再声明一个canvas画布,背景色为绿色,宽度和高度都为200。
第四步,分别定义四个坐标变量a1、a2、b1和b2,使用create_line绘制直线。
第五步,设置完毕之后,运行这个文件,然后查看画布展示的效果。
第六步,修改canvas的背景色,保存文件再次预览查看效果,背景色发生了改变。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)