PySide 概述 (基於 Python 的 GUI 綁定)
PySide 是一個將強大 C++ 編程語言 Qt 庫綁定到 Python 編程語言的 GUI 應用程序工具包。
與 Qt 一樣 PySide 也是自由軟件,其采用 LGPL (GNU Lesser General Public License) 許可授權協議。
PySide 由 Qt 官方開發維護,項目名 Qt for Python。
2018 年 6 月發布 PySide2,2009 年 8 月 PySide1 首次發布。
從 PySide2 起,Shiboken2 模塊從主安裝包中分離,需單獨或依賴安裝。
最新版 PySide6 基於 Qt 6.1.1,穩定版 PySide2 基於 Qt 5.15.2,過時版 PySide1.2.4 基於 Qt/C++ 4.8.7。
PySide6 支持 Python 3.6 3.7 3.8 3.9,不再支持 Python 2.7;PySide2 支持 Python 2.7 3.5 3.6 3.7 3.8 3.9 (某些模塊不支持 x86);PySide1 僅支持 Python 2.7 3.4。
PySide2 和 PyQt5 API 相差很大,但 PySide1 和 PyQt4 API 卻幾乎完全兼容 (除名稱不同外)。
PySide 帶有拖拽式 GUI 設計工具 QtDesigner (但理念不成熟隻適於新手)。
PySide 是 Python 編程語言的 GUI (圖形用戶界麵) 解決方案之一,除可代替 Python 內置 Tkinter 外,主要用於取代 PyQt。
Python GUI 的其它替代者,包括 PyQt PyGTK wxPython 等。
Shiboken 是一個 Generator Runner 前端插件,它使用 CPython 源代碼為 C++ 庫生成綁定。
Generator Runner 是為方便 C++ 和 Qt 庫開發語言綁定而創建的一個工具。
它提供瞭一個框架,使得這個過程能最大可能自動化:使用 ApiExtractor 提取 C++ 頭文件中的信息,通過相應前端 (用戶可以自己提供) 生成某種目標語言綁定。
Shiboken 為 CPython 生成綁定,DocGenerator 為要綁定的庫生成文檔。
Generator Runner 定義瞭一個前端接口類 Generator,每個前端插件 (如 Shiboken) 隻需要提供瞭一個函數 void getGenerators(GeneratorList* list) 來返迴包含 Generator 的一個鏈錶 (QLinkedList)。
當調用 Generator Runner 時,通過 generatorrunner --generator-set=shiboken 命令行指定使用哪一個前端。
當編譯或安裝 Shiboken 時,我們會注意到和 Shiboken 名字相關的有 3 個文件:
shiboken_generator(.dll/.so/...) 是前端插件
shiboken-python*(.dll/.so/...) 是最終生成代碼運行所需的依賴
shiboken(.exe) 是 Shell 文件,就是 generatorrunner --generator-set=shiboken
命令行 --generator-set 可指定 Shiboken 插件完整路徑。
若不是完整路徑,generatorrunner 會先閤成文件名 shiboken_generator.dll,再搜索編譯時所指定的插件目錄、QCoreApplication::libraryPaths() 返迴路徑。
要想為 C++ 庫生成綁定,需 API Extractor 從 C++ 庫頭文件中提取信息,通過 typesystem 文件控製提取 (修改、重命名) 哪些信息。
信息提取後,理論上就可為各種高級語言提供綁定 (隻要存在相應前端)。
時間 | 版本 | Qt | 說明 | 備注 |
---|---|---|---|---|
2021.12 | 6.2.2 | 6.2.2 | ||
2021.05 | 6.1.0 | 6.1.0 | ||
2020.12 | 6.0.0 | 6.0.0 | 不再支持微軟 Windows 7 |
不再支持 Python 2.7 最低支持 Python 3.6 |
2020.11 | 5.15.2 | 5.15.2 | ||
2020.09 | 5.15.1 | 5.15.1 | 開始支持 Python 3.9 | |
2020.07 | 5.14.2.3 | 5.14.2 | ||
2020.05 | 5.15.0 | 5.15.0 | 開始支持 Qt 5Pdf QtQuickControls2 QtSerialPort | MSVC2019 |
5.14.2.2 | 5.14.2 | |||
2020.04 | 5.14.2.1 | 5.14.2 | ||
2020.03 | 5.14.2 | 5.14.2 | ||
2020.01 | 5.14.1 | 5.14.1 | ||
2019.12 | 5.14.0 | 5.14.0 | 開始支持 CPython3.8 | |
2019.11 | 5.13.2 | 5.13.2 | ||
2019.09 | 5.13.1 | 5.13.1 | ||
2019.06 | 5.13 | 5.13 |
開始支持 PDF OpenSSL1.1 QtWebEngine 默認不支持彈齣本地文檔鏈接 |
不再支持 MSVC2015 |
2019.03 | 5.12 | 5.12 | ||
2018.06 | 5.11 | 5.11 |
Python2.7 (采用 MSVC2008 構建) Python3.5 3.6 3.7 (采用 MSVC2015 構建) |
由 Qt 官方維護, 工程名改為 Qt for Python Web 核心由 Apple Safari 改為 Google Chromium |
2015.10 | 1.2.4 | 4.8.7 |
Python2.6 2.7 (采用 MSVC2008 構建) Python3.3 3.4 (采用 MSVC2010 構建) |
最後一個 Qt 4 綁定版本, 存在一些 Bugs,譬如: 粘貼修改交互 Web 內容自動變行 、插入位置不對 、自動設置字體顔色 color=#000 在 QWebView 點擊某些 JavaScript 鏈接無響應 、某些鏈接不彈齣窗口 、某些 PNG 圖片不展示 |
2013.08 | 1.2.1 | 4.8 | ||
2009.08 | 1.0 | 4.5 | 首次發布 | 由開源社區維護, 采用 LGPL 許可協議 |
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。