PyQt、PySide、PySide2這三者到底有什么區(qū)別?
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
前言眾所周知,Python語言在這兩年確實很火,作為一種“膠水”語言,似乎它是萬能的,什么都能做,這依賴于它能夠支持無數(shù)的外部庫,這使得Python就變得無比強大。那么身為Qt的開發(fā)者,也自然不會放過Python語言的集成了,畢竟它這么牛叉,說不定哪天可以用到項目中來呢是吧,那就必須得提前了解一下了。 那么,面對網(wǎng)上那么多支持的模塊:PyQt、PySide、PySide2,到底該用哪一個呢?這幾個之間到底有什么區(qū)別? 兩個不同的玩意兒首先要明確的最重要的一點就是,PyQt和PySide是兩個完全不同的玩意兒,千萬別以為這兩個都是Qt支持Python或者Python支持Qt,他倆是不一樣的,雖然實現(xiàn)的功能都差不多。 PyQtPyQt要比PySide推出時間早得多,它的開發(fā)商是Riverbank Computing,由于推出時間早,PyQt就比較成熟了,并且資料也很完善,最開始是有PyQt4對應的是Qt4版本,后來推出了PyQt5,對應Qt5版本,目前最新發(fā)布的版本是PyQt v5.13.0。值得注意的是PyQt的采用的是GPLv3許可證和需要購買版權(quán)的商業(yè)許可證發(fā)布的,該許可證允許開發(fā)專有應用程序,可以由開發(fā)者選擇。GPLv3許可證大概意思就是說,使用PyQt后你的程序就必須要開源,如果閉源商用就會違反協(xié)議,后果自負,在國內(nèi)可能很多公司部注重這個,隨便在用,但是如果公司比較有影響力的話,違反協(xié)議說不定哪天收到律師函。 PySide對比PyQt,PySide就要晚的多問世了,由于先前PySide項目不是很完善,又缺乏文檔,所以其存在感不高。上面我們說到PyQt的開發(fā)商是Riverbank Computing,而PySide就不同了,它是Qt的親兒子。 當時Nokia(Nokia那時候收購了Trolltech,所以Nokia是當時Qt的爹)和Riverbank Computing談,希望PyQt能添加對LGPL協(xié)議的支持,這對于很多商業(yè)用戶會更加友好,畢竟PyQt里使用的也是我們LGPL協(xié)議版本的Qt,但是Riverbank Computing不同意。 Nokia一氣之下決定單干,于2009年8月發(fā)布了支持了LGPL協(xié)議的PySide,PyQt的對標產(chǎn)品。 LGPL協(xié)議是一個商業(yè)友好的協(xié)議使用 LGPL 協(xié)議開發(fā)閉源程序,如果你使用動態(tài)鏈接的形式,那么,你可以以任何形式(商業(yè)的、非商業(yè)的、開源的、非開源的等等)發(fā)布你的應用程序。 2011年,Nokia將Qt的商業(yè)許可賣給Digia。 2012年,Nokia將Qt完全賣給Digia,后者在2012年年底推出了Qt5。 2015 年 10 月 14 日 PySide 1.2.4 發(fā)布,支持 Qt 4.8.7 框架。兼容 Python2.6 2.7 (采用 MSVC2008 構(gòu)建),兼容 Python3.3 3.4 (采用 MSVC2010 構(gòu)建)。 反觀PyQt,在Qt5推出的半年內(nèi)(2013年6月)就發(fā)布了支持Qt5的pyQt5。 PySide2PySide對Qt5提供支持的計劃也從2014年開始籌備,也就是2015年上馬的Qt for Python項目,該項目開發(fā)的模塊命名為PySide2,以表示與老一代PySide的不同。所以其實PySide2只是PySide的升級版,PySide對標PyQt4,而PySide2對標PyQt5。 總結(jié)總的來說PyQt和PySide2這兩者最大的區(qū)別就是協(xié)議的不同,來自于不同的開發(fā)商,但其實這兩個如果要修改并兼容的話,改動并不是很大,具體的可以參照Qt官方文檔介紹。 雖然PyQt發(fā)布的早,并且穩(wěn)定,資料也比較多,而PySide起步比較晚,直到2018年6月正式發(fā)布了PySide2的第一個版本,從0到1是最難的一步,后面就容易了,尤其發(fā)布的Qt 5.12 LTS釋放了非常積極的信號,PySide2已經(jīng)日趨完善,又是親生的,還有LGPL開源協(xié)議的加持,今后PySide2有足夠的理由成為Python開發(fā)者使用Qt的第一選擇。 該文章在 2025/2/14 12:00:04 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |