Python GUI:高级作图tkinter模块的常用函数基本的动画和事件绑定

来源:互联网 发布:通信工程新定额 软件 编辑:程序博客网 时间:2024/05/16 12:53

移动的动画

>>> from tkinter import *>>> import time>>> tk = Tk()>>> canvas = Canvas(tk,width=400,height=500)>>> canvas.pack()>>> canvas.create_polygon(10,10,10,60,50,35)1>>> for x in range(0,60):#move 第一个参数是id,后面两个是坐标    canvas.move(1,5,5)    tk.update()    time.sleep(0.5)>>> 

事件绑定

当检测到某些event时做某些动作
def movetriangle(evevt):
canva.move(1,5,0)

from tkinter import *tk = Tk()canvas = Canvas(tk,width=400,height=500)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)    def movetriangle(event):    canvas.move(1,5,50)canvas.bind_all('<KeyPress-Return>',movetriangle)

来一个实时的:

from tkinter import *tk = Tk()canvas = Canvas(tk,width=400,height=500)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)    def movetriangle(event):    if event.keysym == 'Up':        canvas.move(1,0,-3)    elif event.keysym == 'Down':        canvas.move(1,5,50)    elif event.keysym == 'Left':        canvas.move(1,-3,0)    else:        canvas.move(1,3,0)canvas.bind_all('<KeyPress-Up>',movetriangle)canvas.bind_all('<KeyPress-Down>',movetriangle)canvas.bind_all('<KeyPress-Left>',movetriangle)canvas.bind_all('<KeyPress-Return>',movetriangle)canvas.bind_all('<KeyPress-Right>',movetriangle)

move 中的id

canvas.create_polygon(10,10,10,60,50,35)
这个指令是返回一个数字,可以把这个数字赋值给一个对象:

triangle= canvas.create_polygon(10,10,10,60,50,35)
canvas.move(triangle,2,2)

itemconfig 配置里面的项目

from tkinter import *tk = Tk()canvas = Canvas(tk,width=400,height=500)canvas.pack()triangle=canvas.create_polygon(10,10,10,60,50,35)   def movetriangle(event):    if event.keysym == 'Up':        canvas.move(triangle,0,-3)    elif event.keysym == 'Down':        canvas.move(triangle,5,50)    elif event.keysym == 'Left':        canvas.move(triangle,-3,0)    else:        canvas.move(triangle,3,0)#itemconfig 用法canvas.itemconfig(triangle,fill = 'red')canvas.itemconfig(triangle,outline = 'blue')canvas.bind_all('<KeyPress-Up>',movetriangle)canvas.bind_all('<KeyPress-Down>',movetriangle)canvas.bind_all('<KeyPress-Left>',movetriangle)canvas.bind_all('<KeyPress-Return>',movetriangle)canvas.bind_all('<KeyPress-Right>',movetriangle)
0 0
原创粉丝点击