我算是知道了,这个tkinter是真的好玩,还非常有趣,希望大家都可以去了解一下。

哈哈,先看成品,再决定是否有学习的兴趣。

目录

系列文章

前言​

原理解析

需求说明

材料图片

第一步:实现一个弹框

第二步:插入图片

第三步:实现图片轮播

总结


系列文章

1、过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter)

2、过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)

3、(tkinter)撩妹弹窗(3)之不要越过三八线,canvas的使用方法

前言​

从图中大家就可以看出来,这次我们要制作的东西,非常好玩有没有,这就是编程的魅力,能实现我们想要的东西。当然了,这只是皮毛而已。

上图中的需求实现总的只有20多行代码,对于新手来说还是比较容易上手的。当然老手那就更不用说了。

原理解析

博主其实也是一位动漫粉,俄而也会看看动漫,还是觉得很有意思的,感觉超酷的,比如我看的一部《刺客伍六七》,不知道大家有没有看过,咳咳咳,有点跑偏了……

首先我们梳理一下动漫是如何形成的。

你可以这样理解,假如把你的每一个动作分解开来,都做成为一张照片,那我们就会得到很多张连续的照片。反过来,我们把所有连贯的照片依次展示出来,是不是就是你的一个完整动作。

那当我们把火柴人的跑步动作分解为图片,然后再将图片依次播放,是不是就是得到了一个移动的火柴人。理论存在,实践开始。

需求说明

虽然已经有图了,但我们还是来说明一下我们的需求,方便大家理解。

1、我有一组连贯的火柴人图片。

2、把这些图片组合在一起,形成一个会动的火柴人

3、移动窗口,火柴人就会运动,停止窗口,火柴人就会停止。

材料图片

顺序为,当然,你也可以用其他图片代替哦。

123

456

789

第一步:实现一个弹框

首先,先来实现一个弹框。

import tkinter
from tkinter import *
tk=tkinter.Tk()def window():tk.title("窗口")  # 设置窗口名称tk.geometry("300x300+500+300")tk.iconbitmap('favicon.ico')tk["background"] = "#7AC5CD"# tk.attributes("-toolwindow", True)#隐藏顶部工具栏之后,icon不会显示tk.mainloop()if __name__ == '__main__':window()

第二步:插入图片

代码如下:

import tkinter, time
from tkinter import *
tk = tkinter.Tk()
tk.title("窗口")  # 设置窗口名称
tk.geometry("200x220+200+220")
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="white")  # bg="pink"
photo=PhotoImage(file="robot.PNG")def update_test(e):cn.delete(tkinter.ALL)tk.update()cn.create_image(100, 100, image=photo)cn.pack()tk.bind("<Configure>", update_test)
tk.mainloop()

第三步:实现图片轮播

代码如下:

import tkinter,time
from tkinter import *tk = tkinter.Tk()
tk.title("窗口")  # 设置窗口名称
tk.geometry("200x220+200+220")
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="white")  # bg="pink"
list,a=[],1
for i in range(1,10):list.append(PhotoImage(file="robot_" + str(i) + ".PNG"))#图片列表def update_test(e):cn.delete(tkinter.ALL)tk.update()global a#设置全局变量for i in range(1,10):if a==9:a=1cn.create_image(100,100, image=list[0])else:cn.create_image(100,100, image=list[a])a+=1breakcn.pack()
tk.bind("<Configure>", update_test)
tk.mainloop()

这里有两个特别注意的点,变量list,和a,list为图片列表。a为全局变量,控制图片轮播。

思路:当窗口移动,窗口改变事件启动,如果a等于9的时候,就重新计算a的值,并创建图片,如果不创建图片,可能就是空白的哦,其他情况就先取列表数据,创建图片,然后再将a加一,下一次就会取第二张图片,依次反复。

总结

本篇文章主要灵活使用画布功能以及画布图片创建的应用,帮助大家更好的了解画布功能。

扩展:在上面这个基础上,当我们换上女朋友或者自己老婆和一些图片,是不是也一样可以用起来。

相关文章:

1、过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter)

2、过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)

3、(tkinter)撩妹弹窗(3)之不要越过三八线,canvas的使用方法

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--运动的火柴人相关推荐

  1. 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)

    过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)-tkinter常用函数解析 ​ 前言 构思了很长一段时间,迟迟没有动手编写,因为总感觉不够有趣,斟酌了许 ...

  2. 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter)

    过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter) 续上一篇学习,我们搞定了了tkinter的基础函数,这次我们开始来搞事情. 一.目录 过分了,别人用 ...

  3. 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(6)-不正经的隐形弹窗

    前言 在前面已经学习了很多,制作弹窗的方式,但是没有一个透明的弹窗.这次我们来做一个透明的弹窗好了.如图,先来感受一下. 还记得以前电脑上莫名其妙安装的游戏吗?窗口并不是方形的.以及在双十一左右时,你 ...

  4. windows桌面程序开发

    对于综合数据管理平台,目前是B/S结构,数据为即时传递,很依赖网络.桌面应用的开发可以避免一些由于网络带来的问题,例如数据的提交.经过调研学习,目前我发现共7种桌面应用开发技术.其中WPF,QT,Du ...

  5. Java桌面程序开发——如何开发美观漂亮好看的桌面程序

    大家想到使用Java这门编程语言大多是脑海中是浮现的B/S开发,高并发.云计算.大数据等等,今天给大家带来的是Java不一样的使用方式--使用Java做PC桌面程序开发. 不同的是,之前Java是使用 ...

  6. 【转】Java桌面程序开发——如何开发美观漂亮好看的桌面程序

    大家想到使用Java这门编程语言大多是脑海中是浮现的B/S开发,高并发.云计算.大数据等等,今天给大家带来的是Java不一样的使用方式--使用Java做PC桌面程序开发. 不同的是,之前Java是使用 ...

  7. 桌面软件开发的复杂性在哪里,一个程序员能完成一个桌面软件开发吗

    桌面软件开发的复杂性在哪里,一个程序员能完成一个桌面软件开发吗.这个估计是很多软件开发外行人士的疑惑.而事实就是一个程序员完成不了一个桌面软件开发这个是为什么,桌面软件开发很复杂吗. 目前软件公司普通 ...

  8. 使用Duilib做桌面应用总结

    使用Duilib做桌面应用总结 最近使用Duilib做了一个简单的桌面应用,在此做一个简单的总结,一是为了记录自己的学习过程,二是对Duilib的使用做一个简单的总结以便后期使用时查阅. Duilib ...

  9. 你觉得你有那些特质让你比别人更适合做产品经理?

    面试中我们可能会被问到这样一个问题,你觉得你有哪些特质让你比别人更适合做产品经理?产品小白尤其会被问到这个问题.那针对这个问题我们该如何回答呢?今天就来和大家聊聊这个话题. 面试题分析: 面试官一是想 ...

最新文章

  1. 【Clickhouse】Dockerfile 文件,加入 mysql
  2. ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)
  3. maven 结合idea入门
  4. JavaScript 图片的上传前预览
  5. OpenShift 4 Tekton - 用Webhook实现CI/CD
  6. 莫名其妙的java.lang.NoClassDefFoundError
  7. Docker离线安装教程(Centos7) 转帖
  8. 力扣-203 移除链表元素
  9. 【渝粤教育】国家开放大学2018年春季 0043-21T计算机文化 参考试题
  10. mips 系统桥_系统功能调用实现简单输入输出(mips)
  11. 时间控件(选择时间范围的插件)
  12. 小程序结合腾讯地图(QQMapWX)SDK做位置周边搜索展示
  13. linux硬盘速度测试方法
  14. 互联网日报 | 华为鸿蒙OS 2.0正式发布;微信小程序日活用户超4亿;百胜中国回港上市首日破发...
  15. android手机没电怎么恢复电量,Android手机电池电量剩下通知
  16. PCB设计布局布线,这几点技巧必须要了解!
  17. Web入门(1)——制作简单的网页
  18. 考研报名电脑显示服务器错误,2021考研报名常见问题:网报过程中,发现考生姓名、证件号码等信息有误怎么办?...
  19. GEE学习笔记:在Google Earth Engine(GEE)中批量下载Sentinel-2影像
  20. 动态加载烘培贴图与Terrain转mesh

热门文章

  1. java实现url地址可变
  2. 中民协元宇宙工委副秘书长高泽龙出席2021中关村大数据联盟年会
  3. 【BZOJ1007】下凸壳
  4. P2782友好城市(LIS,动态规划dp)C语言版
  5. html设计登黄鹤楼怎么搞,登黄鹤楼:有才就是好,可以在景点乱写乱画
  6. HBuilder X运行小程序时,打开了微信开发者工具,但微信开发者工具未运行项目但又没有错误提示
  7. Service的两种启动模式
  8. SVM(三) SMO优化算法求解
  9. c# winform linkbutton 去除下划线
  10. 判断二整数互质 c语言,C语言程序设计练习题