1.開發(fā)技術(shù)
今天由我再次向大家介紹一下PyQt4
PyQt主要是基于Python的代碼上構(gòu)建起來的? 那么Python有什么優(yōu)勢呢,當(dāng)然qt也就有了這部分優(yōu)勢了
跟C/C++/Java相比 — Python能讓你用少的多的多的代碼寫出相同的程序
Python被廣泛應(yīng)用于后端開發(fā)、游戲開發(fā)、網(wǎng)站開發(fā)、科學(xué)運(yùn)算、大數(shù)據(jù)分析、云計(jì)算,圖形開發(fā)等領(lǐng)域
各方面地位超然 Python在軟件質(zhì)量控制、提升開發(fā)效率、可移植性、組件集成、豐富庫支持等各個方面均處于先進(jìn)地位
簡單易學(xué) python具有 簡單、易學(xué)、免費(fèi)、開源、可移植、可擴(kuò)展、可嵌入、面向?qū)ο?等 優(yōu)點(diǎn)
不僅Python簡單容易上手 PyQt也容易上手,而且順手拈來的方便? 你需要的絕大部分功能都有插件或者封裝好的函數(shù)庫幫你實(shí)現(xiàn)
這里我做個簡單的小demo開發(fā)
--
開發(fā)到底有多容易? 隨意創(chuàng)建一個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ǔ)的人都能馬上上手開發(fā)? 我第一次接到要開發(fā)工具任務(wù)的時候一天就學(xué)會了
它的搭建界面和我們用lua寫游戲差不多? 我們把一個組件加進(jìn)來然后調(diào)節(jié)他的大小 顏色 各種參數(shù)就可以了
通用的可以封裝好一些類? 封裝自己的api? 后來的人就很容易學(xué)習(xí)前人的代碼和示例了
像QT這種隨意拖動而生成的界面,比起網(wǎng)頁來說的優(yōu)勢? 支持各個組件的相互重疊,放置更隨意? 舉個栗子? 字母的隨意移動
他可能不是很優(yōu)美? 但是它很恰到好處? 不像C++那么復(fù)雜
當(dāng)然如果要搭建好的界面當(dāng)然也需要用心的設(shè)計(jì)功底,這中沒有樣式限制的開發(fā)模式更隨意? 當(dāng)然有美術(shù)支持的話能做出漂亮的東西
然后它還有悠久的歷史,從諾基亞時代就有了? Qt庫是目前最強(qiáng)大的庫之一,在桌面開發(fā)? 在自動化selenium\win32api OpenGl? 在物理引擎? 等等各方面都做的不錯
和很多語言都具有交互性? 比如html與預(yù)覽
它的打包也非常簡單? 直接運(yùn)行setup.py就可以了
2.開發(fā)工具
剛才我所展示的開發(fā)甚至看起來不需要工具? 直接雙擊就能運(yùn)行,或者右鍵Edit with IDLE? 也可以用Eclipse或者PyCharm,凡事圖個方便
我現(xiàn)在習(xí)慣用的sublime Text? 不僅是良好的編輯器而且非常方便就一鍵運(yùn)行了
3.團(tuán)隊(duì)開發(fā)模式
因?yàn)槊恳粋€.py文件都可以獨(dú)立運(yùn)行 就類似于游戲的每個場景,每個層都是分開的
因此定好接口每個人獨(dú)立開發(fā)自己的模塊非常方便
展示一下輕模板 之再開發(fā)模式
當(dāng)然并不是每個人都喜歡輕模板開發(fā)? 自己好好的可以看到報錯? 可以調(diào)試多好? 用Eclipse也是不錯的
每個組件分配清除? 團(tuán)隊(duì)很容易就可以在一起配合著開發(fā)
4.比較明顯的優(yōu)勢
運(yùn)行速度快? 雙擊直接打開了? 沒有延遲感,不會停頓一小會才打開
打出來的包可以控制,比較小? 舉個栗子? 只包含qt的gl庫打出來的包也就6m
列出PyQt可以比較好做到的事情
1.隨意拖動控件位置
2.精簡的代碼,快速的上手
3.基本上每個組件都有示例demo? 這里稍微展示下上周找的 qtdemo
4.和其他語言比較好的交互性? html shell c++ 至少這些
5.有著大量的函數(shù)庫和使用人數(shù) python本身就能做到很多事情? 這些事情pyqt也能做
6.代碼接近底層 操作速度快
5.最后列出收集的幾個社區(qū)
1. 列舉Pyqt成熟社區(qū)5個。
-- 開源中國社區(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
-- 中國的github? 碼云
http://git.oschina.net/search?utf8=%E2%9C%93&search=pyqt&group_id=&project_id=
2. pyqt知名度較高的成品10個。
-- PyQt4的作者? 里面有源碼? 還有很多Sanmple? 另一個是PyQt5的
https://github.com/spanners/pyqt4-examples
https://github.com/baoboa/pyqt5
-- Qmusic
http://dragondjf.github.io/QMusic/
-- 網(wǎng)易云音樂山寨版本
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 代碼分享? 好多個? 但是沒有特別上眼的
http://www.oschina.net/code/tag/PyQt?show=year
-- Qt在線工具
http://tool.oschina.net/apidocs/apidoc?api=qt
-- OSChina For PC 是一個osc pc客戶端? 雖然不知道做什么用? 好像很厲害的樣子
http://git.oschina.net/fantsme/oschina-for-pc
-- PyQt寫的一些小控件和小程序
http://git.oschina.net/6929092/TOOLS
-- 用 PyQt + QML 實(shí)現(xiàn)的 FlappyBird 游戲
http://git.oschina.net/nexcvon/FlappyBird