能找到這里的小同學,我們可能是校友哦。
這個不正經的帖子來整理一下我們用pyqt5+eric6+mysql開發天氣管理系統(17地市)的所有走過的路,尤其是我走彎路后的修正路線。
因為找了一些資料,看了很多東西,有一些畢竟是沒用的,所以這里整理一下那些幫過我的有用的內容。如果你需要,那就太好了。
至於原碼,沒有~!自己寫去,很鍛煉人的,加油。還有各種很簡單的東西,不多說了,默認都知道~
先上個比較好的環境安裝的資料,環境安不好特煩人,這也是最初為啥我寫代碼的原因(因為一開始只有我配好環境了):
https://blog.csdn.net/qq_39091354/article/details/79947264
數據庫所需要的知識
曾傻白甜的以為,數據庫大作業就跟數據庫很大關系吧,於是去B站看了一堆數據庫的語法,select語句看了一大堆。后來發現,原來不是。感覺這一套下來,pyqt倒是學了不少,python越用越熟練(雖然高級語法還是不會)。
所以只要會簡單的 增查刪改 語法就可以了,前面我有寫一個改的嵌套語句,那個倒是蠻有用(對我而言)。其實把書上的例子看會了就完全足夠了。
pyqt5
之前只用過MFC(上學期),被那個弄得頭暈眼花,懷疑人生。相比較而言,pyqt簡直太太太人性化了,上手超級快,原理也很簡單,雖然我學習的方法可能過於繁瑣,但是好歹我這種笨鳥都能會~
- 之前那本我說的書不用看,直接B站教程。
B站教程搜PYQT5第一個麥子學院的,我看了一大半算是入門。但是感覺,講的賊啰嗦,如果不是跟我一樣菜的,自己想別的辦法也OK。
- 關於QMessageBox:
https://blog.csdn.net/wukai_std/article/details/56480303
這個博客里面的例子親測好用~可惜被我發現的時候已經很晚了,結果做了很多冗余工作QwQ
而且<font>可以改字體的!CSS,我一直不知道orz...搜也沒搜到,可能當做默認的東西了吧,我太菜了
-
QCalendarWidge 日歷獲取年月日 https://www.jianshu.com/p/5fb853527ec2
- 還有各種獲取控件的值請自行百度
pymysql
這個內容也很多,百度就很OK。
難點:
1.matplotlib畫圖:
當時一想到畫圖就難受,結果還是實現了。我不很懂畫圖,但是只要把所有的數據,比如橫坐標的數據,當做一個列表傳參,一個函數就畫好了。
2.matplotlib畫圖如何展現在GUI上:
搜了很多資料,好多不適合我。
https://blog.csdn.net/qq_40587575/article/details/85171401
這個代碼很好,我直接copy了很多,而且講的很清楚。
他給的是代碼,讀一讀就知道了,所以我改動了一些,就可以顯示在我自己的控件上面了。別的有大神用label顯示的圖,我暫時沒去找這種方法。
3.SQL語句怎么寫:
當時確實難了一陣子。后來就明白了。如下圖是方法
當傳過來的是時間時,數據庫表里定義的是timestamp(6),傳過來就是datetime類型了,很神奇。
於是直接 .hour就可以得到小時,類似可以去看datetime的函數說明。
所以當查詢時,用到時間,我就用了最笨的方法,模糊查詢+一堆IF語句。
其他查詢的坑點:
- ValueError: unsupported format character 'Y' (0x59) at index 47: https://segmentfault.com/q/1010000004940764/a-1020000004940865
用到格式化匹配時間的時候可能會報的錯誤;
-
查表的時候,因為傳參是覺得列名是%s,然后其實相當於是這個語句:SELECT ‘f_PM10per1h’,f_time
FROM t_pm25 WHERE f_place='濟南市(總)' AND f_time LIKE '2014-08-29%' ;
效果圖→
所以切記,查表的時候,列名不能是字符串!所以后面那個更新,我用了好多if,太low了
關於打包遇到的坑和解決方案:
https://blog.csdn.net/jylonger/article/details/86537290
https://blog.csdn.net/sinat_32651363/article/details/82841026