1.開(kāi)發(fā)技術(shù)
今天由我再次向大家介紹一下PyQt4
PyQt主要是基于Python的代碼上構(gòu)建起來(lái)的? 那么Python有什么優(yōu)勢(shì)呢告唆,當(dāng)然qt也就有了這部分優(yōu)勢(shì)了
跟C/C++/Java相比 — Python能讓你用少的多的多的代碼寫(xiě)出相同的程序
Python被廣泛應(yīng)用于后端開(kāi)發(fā)、游戲開(kāi)發(fā)镰官、網(wǎng)站開(kāi)發(fā)宵晚、科學(xué)運(yùn)算李茫、大數(shù)據(jù)分析、云計(jì)算绿鸣,圖形開(kāi)發(fā)等領(lǐng)域
各方面地位超然 Python在軟件質(zhì)量控制、提升開(kāi)發(fā)效率暂氯、可移植性潮模、組件集成、豐富庫(kù)支持等各個(gè)方面均處于先進(jìn)地位
簡(jiǎn)單易學(xué) python具有 簡(jiǎn)單株旷、易學(xué)再登、免費(fèi)、開(kāi)源晾剖、可移植锉矢、可擴(kuò)展、可嵌入齿尽、面向?qū)ο?等 優(yōu)點(diǎn)
不僅Python簡(jiǎn)單容易上手 PyQt也容易上手沽损,而且順手拈來(lái)的方便? 你需要的絕大部分功能都有插件或者封裝好的函數(shù)庫(kù)幫你實(shí)現(xiàn)
這里我做個(gè)簡(jiǎn)單的小demo開(kāi)發(fā)
--
開(kāi)發(fā)到底有多容易? 隨意創(chuàng)建一個(gè)ui文件加入下面這句話就可以跑了
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap('ri.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Dialog.setWindowIcon(icon)
--
from functools import partial
class App(QtGui.QMainWindow, Ui_Dialog):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.pushButton.clicked.connect(partial(self.on_click, 'shenme'))
def on_click(self, n):
self.textEdit.append(n)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
ui = App()
ui.show()
sys.exit(app.exec_())
--
所以基本上有點(diǎn)if else基礎(chǔ)的人都能馬上上手開(kāi)發(fā)? 我第一次接到要開(kāi)發(fā)工具任務(wù)的時(shí)候一天就學(xué)會(huì)了
它的搭建界面和我們用lua寫(xiě)游戲差不多? 我們把一個(gè)組件加進(jìn)來(lái)然后調(diào)節(jié)他的大小 顏色 各種參數(shù)就可以了
通用的可以封裝好一些類? 封裝自己的api? 后來(lái)的人就很容易學(xué)習(xí)前人的代碼和示例了
像QT這種隨意拖動(dòng)而生成的界面,比起網(wǎng)頁(yè)來(lái)說(shuō)的優(yōu)勢(shì)? 支持各個(gè)組件的相互重疊循头,放置更隨意? 舉個(gè)栗子? 字母的隨意移動(dòng)
他可能不是很優(yōu)美? 但是它很恰到好處? 不像C++那么復(fù)雜
當(dāng)然如果要搭建好的界面當(dāng)然也需要用心的設(shè)計(jì)功底绵估,這中沒(méi)有樣式限制的開(kāi)發(fā)模式更隨意? 當(dāng)然有美術(shù)支持的話能做出漂亮的東西
然后它還有悠久的歷史,從諾基亞時(shí)代就有了? Qt庫(kù)是目前最強(qiáng)大的庫(kù)之一卡骂,在桌面開(kāi)發(fā)? 在自動(dòng)化selenium\win32api OpenGl? 在物理引擎? 等等各方面都做的不錯(cuò)
和很多語(yǔ)言都具有交互性? 比如html與預(yù)覽
它的打包也非常簡(jiǎn)單? 直接運(yùn)行setup.py就可以了
2.開(kāi)發(fā)工具
剛才我所展示的開(kāi)發(fā)甚至看起來(lái)不需要工具? 直接雙擊就能運(yùn)行,或者右鍵Edit with IDLE? 也可以用Eclipse或者PyCharm国裳,凡事圖個(gè)方便
我現(xiàn)在習(xí)慣用的sublime Text? 不僅是良好的編輯器而且非常方便就一鍵運(yùn)行了
3.團(tuán)隊(duì)開(kāi)發(fā)模式
因?yàn)槊恳粋€(gè).py文件都可以獨(dú)立運(yùn)行 就類似于游戲的每個(gè)場(chǎng)景,每個(gè)層都是分開(kāi)的
因此定好接口每個(gè)人獨(dú)立開(kāi)發(fā)自己的模塊非常方便
展示一下輕模板 之再開(kāi)發(fā)模式
當(dāng)然并不是每個(gè)人都喜歡輕模板開(kāi)發(fā)? 自己好好的可以看到報(bào)錯(cuò)? 可以調(diào)試多好? 用Eclipse也是不錯(cuò)的
每個(gè)組件分配清除? 團(tuán)隊(duì)很容易就可以在一起配合著開(kāi)發(fā)
4.比較明顯的優(yōu)勢(shì)
運(yùn)行速度快? 雙擊直接打開(kāi)了? 沒(méi)有延遲感全跨,不會(huì)停頓一小會(huì)才打開(kāi)
打出來(lái)的包可以控制缝左,比較小? 舉個(gè)栗子? 只包含qt的gl庫(kù)打出來(lái)的包也就6m
列出PyQt可以比較好做到的事情
1.隨意拖動(dòng)控件位置
2.精簡(jiǎn)的代碼,快速的上手
3.基本上每個(gè)組件都有示例demo? 這里稍微展示下上周找的 qtdemo
4.和其他語(yǔ)言比較好的交互性? html shell c++ 至少這些
5.有著大量的函數(shù)庫(kù)和使用人數(shù) python本身就能做到很多事情? 這些事情pyqt也能做
6.代碼接近底層 操作速度快
5.最后列出收集的幾個(gè)社區(qū)
1. 列舉Pyqt成熟社區(qū)5個(gè)浓若。
-- 開(kāi)源中國(guó)社區(qū)
https://www.oschina.net/question/tag/pyqt
-- PyQt4的中文文檔
http://www.qaulau.com/books/PyQt4_Tutorial/index.html
-- 知乎的關(guān)于pyqt
https://www.zhihu.com/search?type=content&q=pyqt
-- csdn pyqt4
http://www.csdn.net/tag/pyqt4
-- 中國(guó)的github? 碼云
http://git.oschina.net/search?utf8=%E2%9C%93&search=pyqt&group_id=&project_id=
2. pyqt知名度較高的成品10個(gè)渺杉。
-- PyQt4的作者? 里面有源碼? 還有很多Sanmple? 另一個(gè)是PyQt5的
https://github.com/spanners/pyqt4-examples
https://github.com/baoboa/pyqt5
-- Qmusic
http://dragondjf.github.io/QMusic/
-- 網(wǎng)易云音樂(lè)山寨版本
https://github.com/HuberTRoy/NetEase
-- PyQt的文檔
http://nullege.com/codes/show/src@p@y@PyQt4-HEAD@examples@designer@plugins@widgets@helloglwidget.py/27/PyQt4.QtOpenGL/python
-- IcePlayer 冰點(diǎn)播放器
https://github.com/FreedomZZQ/IcePlayer
-- Pyqt 代碼分享? 好多個(gè)? 但是沒(méi)有特別上眼的
http://www.oschina.net/code/tag/PyQt?show=year
-- Qt在線工具
http://tool.oschina.net/apidocs/apidoc?api=qt
-- OSChina For PC 是一個(gè)osc pc客戶端? 雖然不知道做什么用? 好像很厲害的樣子
http://git.oschina.net/fantsme/oschina-for-pc
-- PyQt寫(xiě)的一些小控件和小程序
http://git.oschina.net/6929092/TOOLS
-- 用 PyQt + QML 實(shí)現(xiàn)的 FlappyBird 游戲
http://git.oschina.net/nexcvon/FlappyBird