2014-10-16

[工作] Tool Guy

        很久,很久,很久沒有寫部落格了!

        自從八月離職失敗後,本來自我設定成Tool Guy的目標一直被其他雜事給拉走。但終於最近開始有空可以「回歸正途」了。

        第一次注意到Python這個程式語言是從臭胖子聽來的,然後不久又出現一份熱門程式語言排行榜,看來Python近年來開始變成熱門語言,但我終究還是不懂這個可以拿來作什麼。直到有一次面試新人,他拿出用Python寫出來的RF tool demo給我看,我瞬間眼睛一亮 「對!就是這道光!」,也許我也可以用Python寫一個心目中的tool出來才對。

        目前就先暫訂用GUI開發套件PyQt當作tool開發工具,雖然寫PyQt好像跟寫Python有點實質差異,但......萬丈高樓平地起,先試再說!

PyQt教學連結如下(現在最新到PyQt 5,但教學是用PyQt 4,教學裡用的一些語法PyQt5並不支援,所以我使用PyQt 4.11.2)
http://ogc-daily.blogspot.tw/2009/04/pyqt-part-1-introduction.html
http://zetcode.com/gui/pyqt4/
http://blog.sina.com.cn/s/blog_4b5039210100gxy0.html
Qt本質是用C++寫成的framework,PyQt是Qt的Python binding,意思應該是可以用Python語法呼叫Qt的API吧
使用PyQt Designer設計UI之後存檔成.ui,要轉成.py的話可以參考對岸寫的教學
http://www.52ij.com/jishu/432.html

Python教學連結如下(有Python 2和Python 3,不知有啥差別,我使用Python 3.4)
http://pydoing.blogspot.tw/2012/10/python-tutorial.html

        目前讀到感覺最重要的一個觀念,也就是所謂的old style API寫法(PyQt 4.5之後的版本)
開槍的物件.signalName.connect(中槍的物件.slotName)
signal是trigger event,slot是對應這個event所作出的行為,所以簡單說就是「開槍物件的某個動作可以trigger中槍物件作某件事」。了解可用物件、signal、slot有哪些,就可以湊出想要的功能了。

PyQt的Class Reference如下,有一些套件例如QPushButton的解釋
http://pyqt.sourceforge.net/Docs/PyQt4/classes.html

目前還缺Signal和Slot的reference,要找找

1 則留言: