加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python Tkinter动画

发布时间:2020-12-20 13:04:39 所属栏目:Python 来源:网络整理
导读:为什么动画不起作用?运行程序时,形状不会移动. from Tkinter import *import timeclass alien(object): def __init__(self): self.root = Tk() self.canvas = Canvas(self.root,width=400,height = 400) self.canvas.pack() alien1 = self.canvas.create_ov
为什么动画不起作用?运行程序时,形状不会移动.

from Tkinter import *
import time



class alien(object):
     def __init__(self):
        self.root = Tk()
        self.canvas = Canvas(self.root,width=400,height = 400)
        self.canvas.pack()
        alien1 = self.canvas.create_oval(20,260,120,360,outline='white',fill='blue')
        alien2 = self.canvas.create_oval(2,2,40,fill='red')
        self.canvas.pack()
        self.root.mainloop()

     def animation(self):
        track = 0
        while True:
        x = 5
        y = 0
        if track == 0:
           for i in range(0,51):
                self.time.sleep(0.025)
                self.canvas.move(alien1,x,y)
                self.canvas.move(alien2,y)
                self.canvas.update()
           track = 1
           print "check"

        else:
           for i in range(0,-x,y)
                self.canvas.update()
           track = 0
        print track

alien()

解决方法

你从未调用过动画方法.还有一些其他命名问题.

# Assuming Python 2.x
# For Python 3.x support change print -> print(..) and Tkinter to tkinter
from Tkinter import *
import time

class alien(object):
     def __init__(self):
        self.root = Tk()
        self.canvas = Canvas(self.root,height = 400)
        self.canvas.pack()
        self.alien1 = self.canvas.create_oval(20,fill='blue')
        self.alien2 = self.canvas.create_oval(2,fill='red')
        self.canvas.pack()
        self.root.after(0,self.animation)
        self.root.mainloop()

     def animation(self):
        track = 0
        while True:
            x = 5
            y = 0
            if track == 0:
               for i in range(0,51):
                    time.sleep(0.025)
                    self.canvas.move(self.alien1,y)
                    self.canvas.move(self.alien2,y)
                    self.canvas.update()
               track = 1
               print "check"

            else:
               for i in range(0,y)
                    self.canvas.update()
               track = 0
            print track

alien()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读