Python制作个带对联的时间表-元旦快乐

文摘   科技   2024-01-01 19:47   北京  


ISEE小语


出自《元日》中的诗句:

“爆竹声中一岁除,春风送暖入屠苏。千门万户瞳瞳日,总把新桃换旧符。”



    2024年的第一天,首先祝大家新年快乐。

    新年新气象,留下今天的一个新的开始,制作个带对联的时间表,纯娱乐的小东西,同时也代表着一份祝福的传送。

    制作有点随意,但祝福是真情实意!



环境:

Pycharm

Python 3.9.16



安装:

pip install pywebview==4.4.1



导入:

import webview

包的名称是pywebview,注意导入的是webview模块



先看实际效果


基本用法

    pywebview的使用方法,在前期文章中有分享,有兴趣的同学可以了解,这里不再重复。

Python中pywebview库使用并制作一个时间戳转换工具

ISEE小栈,公众号:ISEE小栈Python中pywebview库使用并制作一个时间戳转换工具(附源码+exe)


实现原理

使用pywebview制作[有对联的时间表]小工具,主要实现步骤:

  • 页面设计:根据对联、日期来设计页面,包括布局、样式、交互等

  • 逻辑处理:python主程序进行日期、对联和背景显示的逻辑处理


项目结构

新创建一个happy_new_year项目,具体结构如下:

```结构happy new year├─yuandan.png  # 元旦背景图├─chunjie.png  # 春节背景图├─yuanxiao.png  # 元宵背景图├─life.png  # 生活背景图├─index.html  # 页面└─main.py # 项目主程序```

(左右滑动查看完整代码)

主要代码

设计页面index.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>节日对联</title><style>  body {    margin: 0;    padding: 0;    display: flex;    justify-content: center;    align-items: center;    height: 100vh;    font-family: '楷体', 'KaiTi', 'STKaiti', sans-serif;    background-color: #333;    background-size: cover;    background-position: center;    background-repeat: no-repeat;    background-attachment: fixed;  }
.container { display: flex; align-items: center; }
.couplet-container { background-color: red; color: gold; font-size: 2rem; padding: 20px; writing-mode: vertical-rl; text-orientation: upright; margin: 0 20px; }
.now_date-container { text-align: center; padding: 20px; background-color: red; color: white; }
.now_date { font-size: 2rem; letter-spacing: 3px; }
.banner { position: absolute; top: 50px; color: gold; background-color: red; font-size: 2rem; padding: 10px 20px; border: 1px solid gold; transform: translateY(-50%); }</style></head><body>
<div class="container"> <div class="couplet-container" id="up_couplet"></div>
<div class="now_date-container"> <div id="now_date" class="now_date"></div> </div>
<div class="couplet-container" id="down_couplet"></div></div>
<div class="banner" id="horizontal_couplet"></div>
</body>
<script> async function startCountdown() { const now_dateEl = document.getElementById('now_date'); const api_response = await window.pywebview.api.start(); now_dateEl.innerHTML = api_response.now_date; const up_coupletEl = document.getElementById('up_couplet'); up_coupletEl.innerHTML = api_response.up_couplet; const down_coupletEl = document.getElementById('down_couplet'); down_coupletEl.innerHTML = api_response.down_couplet; const horizontal_coupletEl = document.getElementById('horizontal_couplet'); horizontal_coupletEl.innerHTML = api_response.horizontal_couplet; document.body.style.backgroundImage = 'url("' + api_response.image_name + '")'; } setInterval(startCountdown, 1000);</script></html>

(左右滑动查看完整代码)

双击打开index.html页面,浏览器下最终效果如下:

说明布局是已经OK了。



主程序main.py

# -*- coding: utf-8 -*-import webviewimport datetime

class CountdownTimerApi:
def start(self): result = {"now_date": '', "up_couplet": '', "down_couplet": '', "horizontal_couplet": '', "image_name": ''} while True: now_date = datetime.datetime.now() now_date_ = now_date.strftime("%Y-%m-%d %H:%M:%S") result['now_date'] = now_date_ now_date_day = now_date.strftime("%Y-%m-%d") if "2024-02-10" > now_date_day >= "2024-01-01": result['up_couplet'] = "时光荏苒岁月如梭" result['down_couplet'] = "星辰变幻人间多福" result['horizontal_couplet'] = "元旦快乐" result['image_name'] = "yuandan.png" elif "2024-02-24" > now_date_day >= "2024-02-10": result['up_couplet'] = "福星高照喜临门" result['down_couplet'] = "吉祥如意寿与欢" result['horizontal_couplet'] = "春节快乐" result['image_name'] = "chunjie.png" elif "2024-02-26" > now_date_day >= "2024-02-24": result['up_couplet'] = "岁月静好春满园" result['down_couplet'] = "时光荏苒花盈户" result['horizontal_couplet'] = "元宵快乐" result['image_name'] = "yuanxiao.png" else: result['up_couplet'] = "福禄双全庆丰年" result['down_couplet'] = "平安吉祥度时光" result['horizontal_couplet'] = "一生平安" result['image_name'] = "life.png" return result

def main(): api = CountdownTimerApi()    webview.create_window('祝福-ISEE小栈公众号''index.html', js_api=api, width=800, height=600, resizable=False) webview.start()

if __name__ == '__main__': main()

(左右滑动查看完整代码)


启动运行

在自己电脑上启动,直接切换到venv下,输入:

python main.py

或直接执行main.py

根据节日的对应日期,有不同的效果展示:

【元旦】


【春节】


【元宵节】


【日常生活】

除了以上三个节日,之后都显示如下:


总结

    小栈记录这2024年新年的第一天,纯娱乐,纯开心。小栈打包个exe,传递一下小小的祝福~~

    再次祝大家元旦快乐


后台回复“zhufu”即可获取~!



点个“”和“在看”,是对小栈最大的支持!


     

文章就分享到这儿,喜欢就点个吧!



推荐阅读  点击标题可跳转


ISEE小栈
没有花里胡哨,简单才是王道。
 最新文章