世界盃日曆提醒小卡片:快用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語言
- 用pynotify獲得Google日曆提醒Go
- 微信小程式實現簽到的日曆微信小程式
- 世界盃來了!小程式賽事操作來一波~
- c語言實用小程式C語言
- 用java實現日曆demo。Java
- 微信小程式開發05-日曆元件的實現微信小程式元件
- 世界盃快到了,看我用Python爬蟲實現(偽)球迷速成!Python爬蟲
- Android日曆提醒軟體Android
- 小程式-日曆簽到
- Win10如何刪除日曆提醒事件_win10刪除日曆提醒事件教程Win10事件
- 微信小程式實現卡片左右滑動效果微信小程式
- 日曆管理和提醒工具:EzyCal for MacMac
- 任務日曆提醒工具:Doo for macMac
- Python 實現圖書超期提醒小幫手Python
- 微信公眾號回覆小程式卡片如何實現?
- Python語言的常用語法都有哪些?快來看!Python
- [譯]用javascript實現一門程式語言-語言構想JavaScript
- PHP實現的簡單日曆程式碼PHP
- Mac日曆如何新增提醒事件的教程Mac事件
- 用JavaScript實現一門程式語言 2 (λanguage語言簡介)JavaScript
- BusyCal for Mac(日曆應用程式)Mac
- 用Python程式碼畫世界盃吉祥物拉伊卜(附程式碼)Python
- 程式語言實現模式模式
- 日曆形式實現解析薦
- 微信小程式 vue 自定義日曆 sku微信小程式Vue
- 如果null很糟糕,那為什麼現代程式語言還要實現它?Null
- 如果用程式語言來寫作文
- Go 實現世界盃後臺管理系統Go
- [譯] 用javascript實現一門程式語言-前言JavaScript
- 選單欄日曆提醒工具:Calendar 366 II for MacMac
- 現代程式語言用什麼語言寫成?
- 微信小程式swiper實現 句子控app首頁滑動卡片微信小程式APP
- vue之實現日曆----顯示農曆,滾動日曆監聽年月改變Vue
- 將會改變未來IT世界的十種程式語言
- 用javascript實現一門程式語言-字元輸入流JavaScript字元
- 用XML實現程式語言間的互譯 (轉)XML
- 2022卡達世界盃押注 世界盃用什麼軟體押注