使用tk模块实现照片的移动
本文为python for kids中第12章的编程小测验第3题,实现了对gif图片的读取,以及对读取之后图像的移动,我使用了循环移动,如果不加干涉,图片将一直转圈移动下去,知道按下回车键,GAME_IS_NOT_OVER被触发了之后,tk对象被销毁,游戏结束。
import time
import math as m
from tkinter import *
GAME_IS_NOT_OVER = True
#创建一个Tk对象用来进行画图
#tkinter是一个GUI模板库
tk = Tk()
#创建一个canvas画布对象
canvas = Canvas(tk,width=400,height=400)
canvas.pack()
#通过PhotoImage来读取图片文件,注意tk中只能读取gif格式的图片
my_image = PhotoImage(file='./test.gif')
#通过create_image函数来创建canvas中的图片对象
img = canvas.create_image(0,0,anchor=NW,image=my_image)
directions = [(5,0),(0,5),(-5,0),(0,-5)]#将GAME_IS_NOT_OVER变量设为False让游戏结束
def set_game_over():global GAME_IS_NOT_OVERGAME_IS_NOT_OVER = Falsedef press_enter_to_quit(event):set_game_over()#将回车键和游戏结束函数进行绑定
canvas.bind_all('<KeyPress-Return>',press_enter_to_quit)while GAME_IS_NOT_OVER:for i in range(4):direction = directions[i]for _ in range(20):canvas.move(img,direction[0],direction[1])tk.update()time.sleep(0.05)if not GAME_IS_NOT_OVER:break
#销毁tk对象结束程序
tk.destroy()
效果如下:
使用tk模块实现照片的移动相关推荐
- Perl/Tk模块的安装终极教程(针对于NMAKE不好用的解决办法)
因为组长最近要我们做一下LOG内容的可视化显示,前期提取LOG的时候一直用的是Perl语言进行开发,所以上网寻求更简单的数据可视化的方式,发现Perl脚本是那么的强大,从数据库到可视化再到进程控制,哈 ...
- python tk模块 小作业
import tkinter as tk import tkinter.messagebox window=tk.Tk() window.title('简单控制系统') window.geometry ...
- python成语游戏代码_用python的TK模块实现猜成语游戏(附源码)
1 classGameWindow(object):2 """创建游戏运行窗口并加载相关的控件""" 3 4 def __init__(se ...
- 基于python 使用tk模块和mysql实现学生信息管理系统
学生信息管理系统 好久没有发文啦,经过一段时间的学习,有所收获,写了个小项目,记录一下学习过程.好啦,废话不多说,我们直接说实现,看效果. 首先系统是有三个视图,一个管理员,一个教师,一个学生,运行效 ...
- python批量识别图中文字自动命名_python实现批量命名照片
python批量命名照片的具体代码,供大家参考,具体内容如下 废话不多说,上效果图 全部代码 from tkinter import * import os #添加文件夹路径 def rename() ...
- [转载] windows下Python2.7 的 pyOpenGL模块安装
参考链接: 使用PyGame和PyOpenGL的Python中的高级OpenGL 综合整理的,内容都不知道转手多少次了. 下载Python 下载opengl在python中的插件库pyopengl h ...
- Perl/Tk入门学习(上)
由于项目需求,要编写程序的GUI界面,脚本程序使用Perl,因此选用Perl/Tk模块来实现GUI.初次接触Perl/Tk模块,自我摸索过程中,欢迎大家交流与指正. 目标:编写一个程序的使用界面,具体 ...
- windows下Python2.7 的 pyOpenGL模块安装
由于自己的创新项目中需要用OpenGL完成一些材质的模拟效果,于是看了一些关于OpenGL的材料,加之最近比较喜欢Python这个语言,于是准备在Python中写点OpenGL的东西. 自己在装的时候 ...
- perl/tk_Perl / Tk的基础
IBM®AIX®操作系统管理员和开发人员通常使用Perl语言,几乎在每个成功的网站和大多数AIX系统上都可以找到它. 尽管Perl脚本功能强大,但它们产生的Web界面缺少图形化前端,并且用户必须键入信 ...
最新文章
- php简单算法之冒泡排序
- 第三次作业---读《构造之法》1-5章有感
- CentOS+Nginx+Tomcat+Mysql+PHP 环境搭建及系统部署
- CSP认证201604-3	路径解析[C++题解]:字符串处理、模拟、vector切分字符串
- 【Mysql】_1在centos7虚拟机上完成Mysql环境部署
- 1.4 @SuppressWarnings:抑制编译器警告
- ffmpeg sws_scale函数详解
- android 跑分,2018年10月国内Android手机安兔兔跑分性能排行榜
- 【操作系统】实验四 主存空间的分配和回收
- 社团挖掘算法——BGLL算法
- 我是如何自学C语言的(一个菜鸟的学习路)
- Node.js连接数据库
- React.js引入阿里icon解决icon显示为小方框问题
- 单因素方差分析 OR 重复测量方差分析
- 基于深度强化学习构建量化投资策略
- (五十二)剑网三大风车伤害计算器
- css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
- 在中国做量化交易一天的工作内容
- Java项目开发,学生信息管理系统
- C语言控制流编程试题,可编程序控制系统设计师(中级)职业认证理论考试试题(含答案).doc...
热门文章
- php年金计算函数,年金计算(一)
- 我想成为坐在路边鼓掌的人(转载)
- R语言Rcpp包编写矩阵/向量相乘
- oracle数据库连接加密,oracle 数据库加加密。
- 4G 尚未普及,5G 就要来了?韩国公司或为首个5G运营商
- optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)解决办法
- 如何使用XGBoost进行时间序列预测
- ecshop 中添加限时抢购功能(倒计时)
- JS 复制内容到剪贴板
- 绝地求生模拟登陆!高难度JS解密教程,Python高级爬虫开发,