PyQt4和electron的第二輪對比

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容