世界盃日曆提醒小卡片:快用Python程式語言來實現它
四年一度的世界盃足球賽將於北京時間2018年6月14日晚上23:00開賽,第一場比賽將在俄羅斯莫斯科的盧日尼基體育場進行,東道主俄羅斯對戰沙烏地阿拉伯。
此次2018年俄羅斯世界盃(英語:2018 FIFA WorldCup,俄語:Чемпиона́т ми́ра по футбо́лу 2018)是第21屆世界盃足球賽。比賽時間從2018年6月14日到7月15日,比賽場地涉及俄羅斯境內11座城市中的12座球場。這是世界盃首次在俄羅斯境內舉行,也是世界盃首次在東歐國家舉行,同時是繼2006年德國世界盃後世界杯再一次在歐洲舉行(當然還有一個小祕密:此次世界盃中國隊沒有參加哦)。
趕上此次盛大賽事熱點,小編時不時的刷一下熱搜、知乎、百度貼吧等,突然發現一個好玩的帖子,快來看一看如何使用Python程式語言做世界盃日曆提醒小卡片吧,做好了送給你關心的同事、朋友、親人,時不時的提醒一下他們關注的世界盃熱點。下面以天氣日曆小卡片的製作為例,剩下的大家自由發揮哈!
天氣日曆小卡片製作方法:
每天早上生成天氣日曆小卡片,並自動發給微信好友:
每天的背景都不同,底端天氣的背景色也會自動根據背景的主色調進行相應的調整。圖片中間的旋轉日曆也會根據當天日期進行改變。
開發過程用到了Python和Qt designer,還有Photoshop,從構思到最終實現只花了一下午加一晚上。因為Python豐富的庫,所以對於初學者來說,匯入幾個庫就能實現想要的功能,非常簡單方便。
主要過程就是用pyqt5顯示一個去掉標題欄的介面,匯入PIL庫截個圖,截完後用itchat庫發給微信好友,再把使用者介面關閉,就是這樣。
具體實現過程是這樣的,首先是用PS做出月日周的旋轉圖形,當然,這些字母樣的形狀是有含義的:
轉一下儲存一下,其實也花不了多久。
然後在Qt designer裡面佈局一下,就是把一堆標籤拖到合適的位置上,右鍵改它們的背景圖片:
再把Qt designer生成的ui檔案轉成py檔案,匯入進去就可以操控介面上顯示的內容了。
背景圖片本來是想每天爬取一張手機桌布的,後來感覺圖片不可控不行,所以就一次性爬取了一大堆桌布慢慢用。
天氣欄的背景顏色是根據背景圖的主色調確定的,由於天氣的字型是白色所以忽略掉了比較淺的顏色:
Python通過PIL獲取圖片的主要顏色並和顏色庫進行對比的程式碼,Python程式碼片段分享(http://www.sharejs.com/codes/python/8655)
圖片中間的英文和翻譯,是從金山詞霸開放平臺是爬取的每日一句:
import requests def iciba(): url = "http://open.iciba.com/dsapi/" resp = requests.get(url) contents = resp.json()['content'] note = resp.json()['note'] print(contents, note) return contents, note if __name__ == '__main__': iciba()
天氣和日期資訊的獲取以及天氣圖示的顯示其實是用了我以前寫樹莓派魔鏡時的程式,天氣圖示是從千圖網上下的:
你有什麼有微控制器或開源硬體做的有意思的作品嗎?(https://www.zhihu.com/question/265112599/answer/393361405)
當所有要顯示的資訊獲取完之後,只要讓它們在介面上顯示就可以了,要顯示圖片只需要這樣,改變標籤的樣式表就行:
self.ui.month.setStyleSheet("border-image: url
(images/month/mon_{}.png)".format(self.yue))
self.ui.day.setStyleSheet("border-image: url
(images/day/day_{}.png)".format(self.ri))
self.ui.week.setStyleSheet("border-image: url
(images/week/{}.png)".format(self.week))
執行後視窗會預設在左上角,這個時候讓程式按照視窗的大小截個圖就可以了
Python實現螢幕截圖的兩種方式(https://www.jb51.net/article/134443.htm)
截圖儲存後,再將截圖發給微信好友,利用itchat庫就很簡單了,但是首次登陸要掃二維碼:
#coding=utf8 import itchat itchat.auto_login(hotReload=True) f="./background.jpg" itchat.send_image(f,toUserName = 'filehelper')#這裡是將圖片發給檔案助手 itchat.send("success",toUserName = 'filehelper')#傳送文字
至於我為什麼會有做這個東西的想法,其實是因為這兩張圖片,左邊是在北大光華管理學院的公眾號是看到的,右邊是某個天氣APP的設計圖:
作者:Dean
連結:https://www.zhihu.com/question/21395276/answer/407008072
來源:知乎
《機器學習 第九期》從零到機器學習實戰專案,提供GPU&CPU雙雲平臺,作業考試1V1批改(優秀學員內推BAT等);點選文末“閱讀原文”瞭解詳情。
(限時優惠組團領:即日起至6.18日24點之前,新學員兩兩組團報名各減100元,已經報名的老學員推薦一名新學員報名各返100元,想組團報名者請加微信客服:julyedukefu_02)
相關文章
- 微信小程式實現簽到的日曆微信小程式
- c語言實用小程式C語言
- 用java實現日曆demo。Java
- 世界盃來了!小程式賽事操作來一波~
- 世界盃快到了,看我用Python爬蟲實現(偽)球迷速成!Python爬蟲
- 小程式-日曆簽到
- 微信小程式開發05-日曆元件的實現微信小程式元件
- Win10如何刪除日曆提醒事件_win10刪除日曆提醒事件教程Win10事件
- 日曆管理和提醒工具:EzyCal for MacMac
- 任務日曆提醒工具:Doo for macMac
- Python語言的常用語法都有哪些?快來看!Python
- [譯]用javascript實現一門程式語言-語言構想JavaScript
- 微信小程式實現卡片左右滑動效果微信小程式
- Mac日曆如何新增提醒事件的教程Mac事件
- 用JavaScript實現一門程式語言 2 (λanguage語言簡介)JavaScript
- 微信公眾號回覆小程式卡片如何實現?
- BusyCal for Mac(日曆應用程式)Mac
- 世界盃劇透,來~~~
- [譯] 用javascript實現一門程式語言-前言JavaScript
- 用Python程式碼畫世界盃吉祥物拉伊卜(附程式碼)Python
- 選單欄日曆提醒工具:Calendar 366 II for MacMac
- 用javascript實現一門程式語言-字元輸入流JavaScript字元
- 微信小程式 vue 自定義日曆 sku微信小程式Vue
- vue之實現日曆----顯示農曆,滾動日曆監聽年月改變Vue
- C語言列印年曆C語言
- [譯]用javascript實現一門程式語言-詞法分析JavaScript詞法分析
- Go 實現世界盃後臺管理系統Go
- Python這麼火,它與其他程式語言有什麼區別?Python
- 微信小程式swiper實現 句子控app首頁滑動卡片微信小程式APP
- 原生JavaScript實現造日曆輪子JavaScript
- 2022卡達世界盃押注 世界盃用什麼軟體押注
- 用程式碼來實踐Web快取Web快取
- [應用案例]小程式來了,收錄屬於你的小程式,快來提交吧
- [譯]用javascript實現一門程式語言-AST的介紹JavaScriptAST
- C語言回撥日誌庫的實現C語言
- Python 潮流週刊#57:Python 該採用日曆版本嗎?Python
- 22種程式語言新年快樂
- python實現機率語言零和博弈Python