tkinter canvas jpg_tkinter有趣的小项目汇总

本文汇总了使用Python tkinter模块创建的多个小程序项目,包括王者荣耀抽卡模拟、简易提词板、体重档案、模拟发牌、视频播放器、画板、五子棋游戏、篮球经理游戏、圆盘时钟、拼图和小人走路动画。通过这些项目,作者展示了tkinter的基础组件使用、canvas画布操作、事件绑定和动态效果实现等技巧,适合初学者边学边练。
摘要由CSDN通过智能技术生成

这是一篇对于近来闲着无聊搞的tkinter小程序的汇总。

首先说一下版本是python3.6,在python3.x以后,tkinter已经是内置模块了,不需要额外安装。

这是在网上找的Tkinter知识框架图:

26aaac8a2edbf7fdb3ad05282375ac34.png

tkinter内部的组件和方法很多,对于tkinter这个模块,个人不建议专门找一本书啃下来,最好的学习方式,就是在项目中边查边练,毕竟想一口气把所有内容记住也不太现实。

下面是我自己做的一些项目的汇总,难度不大,重点是挺有趣的:

1.王者荣耀抽卡程序

花果山美男子:tkinter版自制王者荣耀抽卡程序​zhuanlan.zhihu.com
花果山美男子:tkinter版自制王者荣耀抽卡程序(2)​zhuanlan.zhihu.com

这里面用的都是最基本的tkinter组件,包括button、label、text文本框和messagebox消息框等,最核心的内容是label中图片的更新,其中如果是jpg格式需要用ImageTk.PhotoImage来转换。

2.简易提词板

花果山美男子:tkinter做一个简易提词板​zhuanlan.zhihu.com
花果山美男子:tkinter做一个简易提词板(2)​zhuanlan.zhihu.com

第一篇文章利用for循环实现了文字的动态更替效果,原理是label中文字的更新;

第二篇文章改用StringVar和.after()的递归调用来实现,这种方法可以接收外部响应。

3.体重档案

花果山美男子:tkinter做一个体重档案​zhuanlan.zhihu.com
花果山美男子:tkinter做一个体重档案(2)​zhuanlan.zhihu.com

这是一个比较复杂的项目,结合了万年历、秒表和照片查看器等功能。展示了如何用类来实现tkinter的项目,结构比较完整。

用到的最主要的控件还是label,同时用到了.bind来绑定组件和鼠标事件

4.模拟发牌

花果山美男子:tkinter模拟扑克牌和狼人杀发牌​zhuanlan.zhihu.com
花果山美男子:tkinter模拟斗地主发牌​zhuanlan.zhihu.com

这是一个canvas画布的实例,本质就是将画布布置在Tk界面上,然后再在画布上进行绘制和布局。第一篇文章模拟了发牌结果和简单动态效果,第二篇文章则对斗地主发牌过程进行了完整的模拟,用到了对于画布指定组件的删除

5.视频播放器

花果山美男子:tkinter做一个本地视频播放器​zhuanlan.zhihu.com
花果山美男子:tkinter做一个本地视频播放器(2)——弹幕​zhuanlan.zhihu.com

这个项目结合了opencv和canvas画布,实现本地视频文件的播放(无声音),如果想要收音,只能单独提取出音频文件,与视频同时播放。以上方法还可用于摄像头的实时监控,以及多个摄像头监控的同时显示。

第一篇文章的干货很多:文中还提到了如何用moviepy库提取并保存视频文件中的音轨,以及用pygame库播放mp3文件python的多进程运行。最后还简单介绍了用如何实现视频的暂停、倍速和进度条功能;

第二篇文章在前文基础上,增加了播放列表、实时弹幕和跳转进度的功能;用到了下拉框ttk.Combobox和滚动条Scale。

6.画板

花果山美男子:tkinter实现简易画板​zhuanlan.zhihu.com

这篇文章利用canvas画布自带的绘制图形的函数,实现了一个简单的画板。其中主要用到了鼠标事件的绑定;本项目的难点是利用对canvas指定组件的删除,实现“撤销”功能;同时提到了在canvas不提供保存图片的前提下,如何用PIL库来截屏

7.五子棋

花果山美男子:tkinter实现类五子棋游戏​zhuanlan.zhihu.com

这篇文章以五子棋为基础,开发出了一种新的玩法——“四五棋”。主要用到了canvas画布的图形绘制和Label的文字显示,难点在于每次落子后的相应算法判断。

8.篮球经理游戏

花果山美男子:tkinter模拟篮球经理游戏​zhuanlan.zhihu.com

900多行代码实现一个模拟版的篮球经理。

9.圆盘时钟

花果山美男子:tkinter做一个圆盘时钟​zhuanlan.zhihu.com

这篇文章复习了canvas绘制图形的方法,并用它们实现了一个简单的圆盘时钟。

10.拼图

花果山美男子:tkinter做一个拼图游戏​zhuanlan.zhihu.com

这篇文章主要运用了canvas画布与鼠标事件的绑定,其中"<B1-Motion>" 是拖动左键,
"<Button-1>"是点击左键,"<Button-3>"是点击右键,"<Motion>" 是移动鼠标;同时介绍了变量的批量创建与调用

11.小人走路动画

花果山美男子:tkinter实现小人走路动画​zhuanlan.zhihu.com

这篇文章依然用canvas画布与鼠标事件的绑定,实现了简单的动画效果。

后续有待补充……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值