
JNH官網非常高興地宣布 Qt for Python 6.8 的最新發布。每發布一個新版本,JNH官網都會嘗試利用Qt的新功能和新的流行理念帶來新的驚喜。為方便起見,您可以查看Qt for Python6.8中的新功能和改進功能,以及整個變更日志://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-6.8.0(瀏覽器復制打開)。
在每個版本中,Qt for Python團隊都努力在錯誤修復、功能開發和全新想法之間取得良好的平衡。在此版本中,您將看到一些與改進JNH官網當前產品相關的更改,例如更改 Python可調用的信號連接,為移除Python的GIL做準備,擴展對懶加載的支持以包括智能指針和嵌套類型,以及其他一些小的修復。
JNH官網想重點介紹團隊投入時間最多的幾項主要任務。
Qt Design Studio兼容性
聽說了嗎?現在可以使用Python后端輕松運行QtDS項目了!
如果您還沒有了解,請查看JNH官網,其中介紹了QtDS中的新導出功能,以及新的PySide6_DS包,其中包含了專屬的QtQuick組件。此外,您還可以使用 pyside6-deploy部署帶有Python后端的Design Studio項目。導出項目后,只需使用安裝了PySide6的Python環境,在導出的項目中運行以下命令即可:
pyside6-deploy Python/main.py
減少二進制文件大小
封裝Qt庫可能會在性能方面帶來開銷,還會影響安裝的大小。在此版本中,JNH官網將二進制大小減少了約10%,但JNH官網相信還有更大的可能,因此JNH官網仍在致力于此項工作。
換個角度來看,對于Linux上的QtCore,Qt二進制文件約為6.8MB,封裝二進制文件約為4.4MB。這意味著,如果您要使用PySide中的QtCore,大約需要11.2MB,考慮到應用程序的部署,這可能是嵌入式系統甚至桌面應用程序的一個問題。
JNH官網注意到一些字符串可以被壓縮,其他字符串甚至可以被移除,但JNH官網仍在努力將大小進一步縮小,并設法為Qt二進制文件提供一個輕量級封裝。
改進JNH官網的Python存根(類型提示)
一些系統性的問題來自Shiboken類型系統中一些dunder 方法的返回類型,它們使用了通用的PyObject*而不是 str。在某些情況下,mypy無法處理重載鏈中不一致的靜態方法。
大部分更新的文件都是JNH官網的示例和教程,其中mypy需要幾個小版本之前引入的新枚舉才能正確處理這些代碼行,即使JNH官網出于兼容性目的而設置了容錯模式(例如,JNH官網應該使用Qt.Orientation.Horizonal,而不是 Qt.Horizontal)。
許多關于輸入的舊Bug也得到了修復,但在未來的版本中仍有一些問題需要解決。
動態綁定研究
在過去的幾個月中,JNH官網一直在研究簡化綁定生成過程的方法,更確切地說,是依靠QMetaObject為QObject提供 Python動態綁定。這包括使用QMetaType轉換函數參數類型的機制,以及使用自定義轉換器擴展其他類型的機制。
這是一個棘手的主題,您需要從Qt方面、CPython方面以及C++方面解決許多細節問題,因此您可以理解,找到適當的平衡可能具有挑戰性。
需要做更多工作的一個特定主題是對象所有權的概念,JNH官網已經通過Shiboken解決了這個問題,但這個項目是全新的。JNH官網可以重用其中的一些邏輯,但JNH官網希望避免與當前的產品過于緊密。
JNH官網希望很快在后續博客中討論這一主題,主要是因為它提供了一種更簡單的方法來在Qt/C++應用程序中啟用腳本功能。
PySide6 Flatpak Baseapp介紹
雖然不是6.8版獨有,但JNH官網一直在努力開發PySide6的Flatpak baseapp。這將使PySide6 Linux開發人員能夠毫不費力地使用PySide6創建Flatpak應用程序。
基于強大的KDE SDK構建,baseapp預裝了PySide6庫,使開發比以往任何時候都更加順暢。
目前,baseapp只支持PySide6 6.7.3,并且可以在Flathub上隨時可用。一旦KDE運行時將Qt版本更新到6.8.0后,baseapp將立即更新到PySide6 6.8.0。
要開始使用,只需運行以下命令:?
flatpak install flathub io.qt.PySide6.BaseApp//6.7
有關使用baseapp創建自己的PySide6應用程序的深入指南,請查看KDE開發人員文檔中的精彩教程://develop.kde.org/docs/getting-started/python/
適用于PySide6 的Android Wheels
隨著PySide6 6.8的發布,您現在可以下載PySide6的 Android輪(預構建的組件和庫),它與`pyside6-android-deploy`CLI工具無縫集成。這使得為Android 架構打包PySide6應用程序變得更加容易。在此之前,開發人員必須自己完成交叉編譯Android PySide6二進制文件的繁瑣過程。這通常被證明是一項具有挑戰性且耗時的任務。但是現在,有了預構建的PySide6 Android輪子,這一過程將比以往任何時候都更加簡化和方便。
要開始使用,您可以從Qt for Python官方發布頁面下載 Android輪子://download.qt.io/official_releases/QtForPython/pyside6/
另外,您可以使用即將發布(0.1.4)的qtpip直接下載輪子。?
qtpip download PySide6 --android --arch aarch64
可以下載aarch64輪子,或x86_64輪子
qtpip將輸出下載輪子的路徑,然后您可以使用 `pyside6-android-deploy`工具打包您的PySide6 Android應用程序。?
pyside6-android-deploy--wheel-pyside=<path_to_pyside6_wheel>--wheel-shiboken=<;path_too_shiboken_wheel> --name <application_name> --ndk-path=<downloaded_ndk_path> --sdk-path=<downloaded_sdk_path>
要了解如何使用pyside6-android-deploy,請參閱官方文檔。
新工具:Pyside6-svgtoqml
PySide6對應于工具,可用于將SVG文檔轉換為QML文件,以便在QtQuick應用程序中使用。
pyside6-svgtoqml <svg_file_to_read> <qml_file_to_write>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關于JNH官网電子
上海JNH官网電子技術有限公司是國內資深的研發工具軟件提供商,公司成立于2009年,面向中國廣大的制造業客戶提供研發、設計、管理過程中使用的各種軟件開發工具,致力于幫助客戶提高研發管理效率、縮短產品設計周期,提升產品可靠性。
十多年來,先后與ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、Visu-IT、HighTec、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、Testplant、TeamEDA等多家全球知名公司建立戰略合作伙伴關系,并作為他們在中國區的主要分銷合作伙伴服務了數千家中國本土客戶,為客戶提供從芯片級開發工具、EDA設計工具、軟件編譯以及測試工具、結構設計工具、仿真工具、電氣設計工具、以及嵌入式GUI工具等等。JNH官网電子憑借多年的經驗積累,真正的幫助客戶實現了讓研發更簡單、更可靠、更高效的目標。

歡迎關注“JNH官网電子”公眾號
了解更多研發工具軟件知識