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