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

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

大家好,又见面了,我是全栈君。

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

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

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

目录

系列文章

前言​

原理解析

需求说明

材料图片

第一步:实现一个弹框

 第二步:插入图片

 第三步:实现图片轮播

总结


系列文章

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

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

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

前言​

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

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

原理解析

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

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

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

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

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

需求说明

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

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

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

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

材料图片

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

123

456

789

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

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

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

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

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

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

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

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

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

第一步:实现一个弹框

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

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

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()

 第二步:插入图片

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

代码如下:

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()

 第三步:实现图片轮播

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

 代码如下:

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=1
            cn.create_image(100,100, image=list[0])
        else:
            cn.create_image(100,100, image=list[a])
            a+=1
        break
    cn.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的使用方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111353.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • maven 菜鸟教程_runoob菜鸟教程app

    maven 菜鸟教程_runoob菜鸟教程app1.什么是maven?    maven是一个跨平台的项目管理工具。  作为Apache组织中的一个颇为成功的开源项目,Maven只要服务于Java平台的项目构建、依赖管理和项目信息管理。  Maven不涉及编码,但是涉及编码的方式(导入jar方式)2.项目的构建方式  编译————&gt;运行单元——————&gt;生成文档——————&gt;打包和部署  …

    2025年10月7日
    4
  • UART介绍「建议收藏」

    UART介绍「建议收藏」1.概述UART,UniversalAsynchronousReceiver-Transmitter,通用异步收发器;串口:在嵌入式里指的是UART口,常用TTL电平即3.3V或者5.0V;COM口:在台式机上常用的口,DB9那种接口,接口协议只有两种RS232和RS485;RS232电平即负逻辑电平,定义+5V~+12V为逻辑0,-5V~-12V为逻辑1。…

    2025年11月18日
    3
  • 【通俗易懂】关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂「建议收藏」

    本来是为了复习数据库期末考试,结果找了一圈都没有发现比较好的解释,通过查阅资料和总结,为大家提供通俗易懂的解法,一听就会!并且配有速记口诀!介是你没有玩过的船新版本包含最小依赖集求法候选码求法在模式分解之前,首先对于1NF,2NF,3NF,BCNF做一个简明扼要的介绍。1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。2NF要求属性…

    2022年4月8日
    87
  • Hook 技术简介

    Hook 技术简介#include”Windows.h”#include”tchar.h”#include”resource.h”HINSTANCEg_hInstance;staticHHOOKhHook=NULL;INT_PTRCALLBACKProcWinMain(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);LR

    2022年5月26日
    62
  • 广义最小二乘法是加权最小二乘法的特例_简述广义最小二乘法

    广义最小二乘法是加权最小二乘法的特例_简述广义最小二乘法所谓回归分析实际上就是根据统计数据建立一个方程,用这个方程来描述不同变量之间的关系,而这个关系又无法做到想像函数关系那样准确,因为即使你重复全部控制条件,结果也还有区别,这时通过让回归方程计算值和试验点结果间差值的平方和最小来建立 回归方程的办法就是最小二乘法,二乘的意思就是平方。最小二乘就是指回归方程计算值和实验值差的平方和最小。首先普通最小二乘法是作为回归来使用,将预测值和真实值…

    2022年8月30日
    5
  • Git 设置用户名、邮箱和SSH密钥

    Git 设置用户名、邮箱和SSH密钥当我们安装好Git之后第一件事就应该是设置用户名还有邮箱,那么下面就说说怎么设置吧~查看#查看当前项目中的设置gitconfig-l#查看git全局的设置gitconfig-l–global设置按照上面说的查看方法可以得知,设置用户名和邮箱同样可是全局还有单独项目,区分就是在参数中是否加上–globalgitconfig–globaluser.name’admin’gitconfig–globaluser.email’admin@gmail.com

    2025年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号