實際應用中python編寫的程序大部分都是無界面的嗎?
只要找對方法用python編寫桌面程序一點都不麻煩。
下面演示一下如何使用Qt Designer編寫Python圖形界面程序。
1.目標編寫一個倒計時時鐘程序,用餅圖的形式顯示一天、一周、一個月以及一年已經過了多少時間還剩多少時間,用於提醒人珍惜時間。
2.實現方法
- 由於准庫time模塊不能繼承,創建一個新的時間的類,使用標準庫time模塊來進行時間的相關操作。
- 使用Eric與Qt Designer開發
- 使用matplotlib的pie函數繪製餅圖
3.項目編寫3.1 創建項目
- 打開Eric,單擊菜單欄【項目】-【新建】
輸入「項目名稱」,選擇「項目文件夾」,點擊【OK】
3.2創建窗體
- 在Eric「項目瀏覽器」的「窗體」中,單擊右鍵,選擇【新建窗體】
- 選擇窗體類型「主窗口」,點擊【OK】
- 輸入窗體文件名,點擊【Save】
- 在項目瀏覽器中,右鍵點擊新建的.ui窗體文件,選擇【在Qt設計師中打開】
- 打開Qt Designer後,會有幾個基本的窗口,你自己的窗口「MainWindow」、「窗口部件盒」、「對象查看器」、「屬性編輯器」,其他的窗口可從菜單欄「視圖」窗口選擇。拖拽「MainWindows」設置窗口的初始大小從「窗口部件盒」拖4個Widget到「MainWindow」
- 在「MainWindow」4個Widget以外的地方單擊右鍵,選擇【布局】-【水平布局】
- 在一個Widget上單擊右鍵,選擇【提升為】
- 在「提升的類名稱」中輸入要創建的自定義的widget類名稱,點擊【添加】
- 選中「提升的類」中新建的那個類,點擊【提升】
- 選中Widget組件,在右側的「屬性編輯器」中將objectName改為mpl···Widget
- 保存文件,退出Qt Designer。
- 右擊Eric「項目瀏覽器」中的.ui窗體文件,選擇【編譯窗體】,生成文件Ui_countdownmainwindow.py
打開生成的文件,將 剪切至上面,保存文件。
3.4 自定義Widget類的編寫
- 單擊Eric工具欄新建按鈕,創建一個空白文檔,保存為名為『mplpiewidget.py』的文件。
- 偽代碼
- 編寫代碼
- 單擊Eric工具欄新建按鈕,創建一個空白文檔,保存為名為『mytime.py』的文件。
- 偽代碼
- 編寫代碼
3.6 主程序編寫
1.Eric「項目瀏覽器」右擊.ui文件選擇【生成對話框代碼】2.選擇【新建】類名3.單擊【OK】,項目中生成名為countdownmainwindow.py的文件4.編輯countdownmainwindow.py
- 將改為
- 導入我們寫的Time類
- 創建一個繪製餅圖的方法
- 創建列表,用於繪製餅圖及設置餅圖顏色
- 在__init__方法中添加繪製餅圖的方法
- 在最後添加如下代碼,將主窗口顯示出來。
- 完整代碼為:
3.7 程序的調試與運行
- F5鍵為調試程序選中主程序調試,調試整個項目,如果沒有錯誤直接運行
- F2鍵為直接運行程序
5 程序演示
Python開發的應用基本上都沒有界面。Python可以做桌面界面,但不是它的強項。
實際工作中,Python界面常用於開發小型工具,或者臨時測試。比方說做個演算法,需要調各類參數(比如閾值),就可以做個簡單的界面,包含拖動條,到時候可以邊拖邊查看運算結果。但是這個只用於測試和開發人員工具,最終用於生產平台的時候不會包含界面的。換句話說,界面不會用於最終用戶。甚至從頭到尾都不用考慮美工,因為是開發人員自己臨時用的。
Python一般都用於伺服器端,後台跑。如果真的要開發用戶界面,通常都是採用web網站的形式。可以用Python,也可以用PHP、ASP.NET、JAVA等。
如果要開發界面,Windows下常用.NET,C++(mfc,QT等),安卓上用JAVA,蘋果手機上用objectC,swift等。
python寫UI的Windows確實不多。現在Windows應用已經被微軟的.net霸佔了。安卓和蘋果移動開發也很少用。python界面話主要用於web。而且寫自動化運維的web格外順手,python寫web的效率是非常高的。畢竟有django,而且運維喜歡用ansible和saltstack這兩個神器都可以直接變成python的模塊,方便二次開發而且耦合度很高。真正上線的話,後期直接nginx+uwsgi很好部署的。除了自動化上線平台我還見過用python寫直播web的,寫視頻web的。豆瓣就是純python寫的。
寫個自動爬蟲腳本用python幾分鐘搞定,哪有空寫界面。
如果要桌面界面,當然是C#最快,誰用誰知道。
web界面,小型用php,大型用java。
當然,上述都可以用python.但是真用python的很少。因為可選解決方案不多,招人也不會太順利。
python的UI界面有一些,只是不常用而已。在最新版的微軟VISUALSTUDIO2017中,可以採用pyqt模塊來實現python的界面編程,只是微軟的工程師對著一塊不上心,官網說明基本不可用。
我寫了一篇博客,詳細描述了在visuslstudio2017中如何使用python的UI編程,很快上線csdn和頭條,到時直接查閱就行。
個人感覺,vs2017的python環境及UI超越傳統的pycharm等,我已經堅決刪除pycharm。
幾乎大部分沒有界面,實現過程不一樣,python的執行大部分都是shell下面,交互單一,但是你若用python開發web,界面就會很多!個人覺得python做windows桌面應用程序難度較大,不太適合!
我都用java的swt寫桌面應用,開始不懂以為java不好寫桌面啊就跑去學了C#的winform,結果你猜怎麼樣,論效率那是差不多了,swt寫的只要有java運行環境隨便用,winform呢,可能我學的不精,各個版本的.net framework還偶爾不能用...
推薦閱讀:
※Python學到什麼樣子可以去找工作?
※Python,Lua 哪個適合做繪圖軟體的插件腳本語言?
※演算法,西瓜切十刀,最多是多少塊?
※如何用python模擬一個星系?
※如何評價 Quora 的 Ultralisk 並行架構?