Python编程 简单春节倒计时教程(附源代码)

  • 作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 

  •  座右铭:低头赶路,敬事如仪

  • 个人主页:网络豆的主页​​​​​​

目录

 前言

一.应用的技术

1.Tkinter

2.PHotoimage 函数

3.label组件

二.效果图

三、实现步骤 

1.引入tkinter标准库 取别名为 tk

 2.设置窗口

3. 用 PHotoimage 函数设置一个图片对象

背景图(自取)

4.定义一个label组件,设置文本

5.取得现在时间并且计算到新年时间

6. 设置文本内容

四、编码实现(全部源代码)


 前言

快到2023年了,提前预祝大家新年快乐,万事如意,今天呢网络豆在这里给大家理由Python做一个超简单的新年倒计时。如果对你有帮助记得点赞收藏加关注哦。


一.应用的技术

1.Tkinter

Tkinter 是 Python 的标准 GUI 库。 Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。


2.PHotoimage 函数

在Tkinter中,一些小部件可以显示图像,例如Label和Button。这些小部件采用允许它们显示图像的图像参数。但是,不能简单地将图像文件的路径传递给image参数。相反,需要创建一个Photolmage对象并将图像参数传递给它


3.label组件

Label用于在指定的窗口中显示文本和图像。最终呈现出的Label是由背景和前景叠加构成的内容。Label组件定义函数:Label(master=None, cnf={}, **kw) 其中,kw参数是用来自定义lable组件的键值对。


二.效果图


三、实现步骤 

1.引入tkinter标准库 取别名为 tk

import tkinter as tk     # 引入tkinter标准库 取别名为 tk
import sys
import time
import datetime
import math

 2.设置窗口

root = tk.Tk()                     # 设置tk 的主窗口
root.geometry("600x400")           # 主窗口 600x400 大小
root.title("salted fish")          # 设置主窗口标题内容 "salted fish"

3. 用 PHotoimage 函数设置一个图片对象

img = tk.PhotoImage(file = "1111.png")

背景图(自取)

注意:图片格式要为.png格式,将图片存放到 你Python文档的文件中


4.定义一个label组件,设置文本

bg_labe =tk.Label(root,                              # 定义一个label组件
                  justify=tk.LEFT,                   # 设置多行文本对其方式
                  compound=tk.CENTER,                 # 设置文本和图像混合模式
                  font=("微软雅黑", 35),               # 设置字体的样式和大小
                  fg="red",                          # 设置文本字体颜色
                  image=img)                        # 设置图片
bg_labe.place(x=0, y=0)                             # 设置label 对象在主窗口中的位置
bg_labe.pack()

5.取得现在时间并且计算到新年时间

def cdn():
    spring = datetime.datetime(2023, 1, 22, 0, 0)# 给定过年正月的具体时间, datetime 可以将参数变为时间格式
    today = datetime.datetime.now() # 取得现在的时间
    day = (spring - today).days # 用春节的时间减现在的时间 得到天数
    second = (spring - today).seconds # 得到秒数
    sec = second % 60      # 分别算出 具体秒数  分钟数 和 小时数
    minute = second / 60 % 60 
    hour = second / 60 / 60
    if hour > 24:
        hour = hour - 24   # 如果小时大于24就减掉24
    hour = math.floor(hour)  # 去掉hour 和 minute 的小数部分
    minute = math.floor(minute)

6. 设置文本内容

bg_labe.config(text=str(day) + "天" + str(hour) + "小时" + str(minute) + "分钟" + str(sec) + "秒")    # 设置 bg_label 对象的文本内容
    sys.stdout.flush()

    bg_labe.after(1000, cdn)                            # 设置对象一秒执行一个 cdn 函数
cdn()                                                   # 调用 cdn 函数

tk.mainloop()

四、编码实现(全部源代码)

import tkinter as tk     # 引入tkinter标准库 取别名为 tk
import sys
import time
import datetime
import math

root = tk.Tk()                     # 设置tk 的主窗口
root.geometry("600x400")           # 主窗口 600x400 大小
root.title("salted fish")          # 设置主窗口标题内容 "salted fish"
img = tk.PhotoImage(file = "1111.png")     # 用 PHotoimage 函数设置一个图片对象


bg_labe =tk.Label(root,                              # 定义一个label组件
                  justify=tk.LEFT,                   # 设置多行文本对其方式
                  compound=tk.CENTER,                 # 设置文本和图像混合模式
                  font=("微软雅黑", 35),               # 设置字体的样式和大小
                  fg="red",                          # 设置文本字体颜色
                  image=img)                        # 设置图片
bg_labe.place(x=0, y=0)                             # 设置label 对象在主窗口中的位置
bg_labe.pack()


def cdn():
    spring = datetime.datetime(2023, 1, 22, 0, 0)
    today = datetime.datetime.now()
    day = (spring - today).days
    second = (spring - today).seconds
    sec = second % 60
    minute = second / 60 % 60
    hour = second / 60 / 60
    if hour > 24:
        hour = hour - 24
    hour = math.floor(hour)
    minute = math.floor(minute)

    bg_labe.config(text=str(day) + "天" + str(hour) + "小时" + str(minute) + "分钟" + str(sec) + "秒")    # 设置 bg_label 对象的文本内容
    sys.stdout.flush()

    bg_labe.after(1000, cdn)                            # 设置对象一秒执行一个 cdn 函数
cdn()                                                   # 调用 cdn 函数

tk.mainloop()

创作不易,求关注,点赞,收藏,谢谢~ 

猜你喜欢

转载自blog.csdn.net/yj11290301/article/details/128499405