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
<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 webview
import 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”即可获取~!
点个“赞”和“在看”,是对小栈最大的支持!
文章就分享到这儿,喜欢就点个赞吧!