標籤:python pyqt gui 多線程 qt
一、學習來由:
最近一段時間,應朋友的需要,完成一款抓取軟體。一般而言,python是我比較熟悉的語言,又有豐富的抓取和解析模組,所以果斷選擇之。
而這遠遠不是重點,背景程式在工作做經常寫,所以比較熟悉,完成了多線程mini_crawler之後,接下來就是要開發可視化的介面,將功能封裝成友好的工具。
真正的探索剛剛開始。
在探索過程中,發現很多問題。首先是GUI工具的選擇。關於這方面的介紹不算少,除了python內建的tk,還有window的wxwidgets和wxpython。
tk適合開發簡單的介面,相對來說比較簡陋,不過不需要安裝其他的工具,對於簡單的介面需要還是不錯的選擇。
wxpython也是常用的GUI開發系統。不過寫起來比較複雜,介面部分需要自己完全開發。
對於我而言,需要用到的有:
1. 比較美觀的介面,
2. 後台多線程,後台運行長操作,即時更新前端UI,
3. 內容表格顯示,
4. excel格式儲存。
5. 多種訊息框和對話方塊。
二、工具的選擇
tk太過簡單,考慮了一下,果斷放棄,wxpython調研了一段時間,還參考了他人開發的工具源碼。感覺比較複雜,開發量比較大,我的時間只有兩周,還是放棄了。
在此,簡單吐槽一下,通常軟體在發布的時候,出於各種目的,往往“金玉其外敗絮其中”,敗絮指的是代碼或檔案封裝的複雜,看著很亂,其實真正的功能並不複雜。這一點在我自己產生軟體之後,看到之前清晰的代碼,變成一大堆頭疼的目錄和檔案後,深有體會。
最終我的選擇是pyqt。版本為4.
選擇的原因:qt還是比較成熟的GUI工具,pyqt簡單而已就是其python版本,大部分功能和介面都支援,用著也比較方便。另外當安裝eric開發環境後,可以支援qt designer,可以用熟悉的拖動來完成直觀的設計,這一點還是很有吸引力的。
比較悲催的是,pyqt的相關資料很少,可參考的書籍似乎只有英文版《Rapid GUI Programming with Python and Qt》,版本還相對較早。有時候會比較吃力。
網路上的資料,往往是比較常用的總結,如我遇到的後台多線程與前端UI互動的問題,查詢起來就比較困難,很多地方只有蜻蜓點水的介紹和解釋,最終還的自己想辦法攻克。
三、實踐經曆
後續通過自己的實踐經曆,結合開發軟體用到的工作功能,介紹一下自己的學習過程,與大家分享。
pyqt學習總結