Qt.py: Python 2/3下兼容四大Qt绑定的垫片工具

需积分: 10 0 下载量 2 浏览量 更新于2024-11-07 收藏 71KB ZIP 举报
资源摘要信息:"Qt.py是一个Python库,它的目的是作为PySide2、PyQt5、PySide和PyQt4这些Qt绑定的垫片层(shim),允许开发者编写能够在所有这些不同的Qt版本上运行的代码。这样的设计极大地提高了代码的兼容性和可移植性,因为开发者不再需要对每一种绑定编写和维护不同的代码分支。 ### 标题知识点详细说明 标题“Qt.py:围绕所有Qt绑定的最小Python 2和3垫片-PySide,PySide2,PyQt4和PyQt5”强调了Qt.py的核心功能,即它提供了一种方法,使得相同的Python代码能够在所有主要的Qt绑定版本上运行。无论你是使用PySide2、PyQt5、PySide还是PyQt4,Qt.py都能通过提供一个统一的接口来解决这些不同绑定之间的不兼容问题。 ### 描述知识点详细说明 描述部分提供了关于Qt.py的几个重要版本发布的时间点和主要内容: - 2020年9月:Qt.py的稳定性得到了提高,特别提到`QtCompat.wrapInstance`方法能够正常工作,这表明垫片层的兼容性得到了加强。 - 2019年6月:进行了错误修正,说明这个版本是关于修复之前版本中可能存在的bug。 - 2018年1月:添加了新的测试套件和新成员,这可能意味着社区支持或功能的扩展。 - 2017年3月:安全性得到提升,并且明确指出存在向后不兼容的变化,表明可能有重大更新或重构。 - 2016年9月:发布了稳定版本,并且还提供了Alpha版本的转换工具`--convert`。 - 2016年6月:Qt.py的首个版本发布,开启了这个项目的历程。 ### 标签知识点详细说明 标签提供了对Qt.py的定位和用途的快速概览,这些标签分别是: - pyqt5:指的是Qt.py支持PyQt5版本。 - pyqt4:指的是Qt.py支持PyQt4版本。 - pyside:指的是Qt.py支持PySide版本。 - pyside2:指的是Qt.py支持PySide2版本。 - Python:表明Qt.py是一个Python库,与Python语言紧密相关。 ### 压缩包子文件名称列表知识点详细说明 - Qt.py-master:表明这是Qt.py项目的主分支或主仓库,通常包含项目的最新代码和历史版本。 ### 安装与使用 要开始使用Qt.py,首先需要进行安装。安装方法通常是在命令行中使用pip工具进行安装,例如: ``` pip install Qt.py ``` 安装完成后,开发者可以在代码中导入Qt.py,并根据需要进行配置来指定当前项目使用的Qt绑定版本。使用时,Qt.py提供了一个统一的API,开发者可以通过这个API编写应用逻辑,而不用担心底层使用的是哪一个Qt绑定。 ### 文献资料与环境变量 对于想要深入学习Qt.py的开发者来说,文档资料的获取和学习是必不可少的。开发者可以查阅Qt.py的官方文档、参与社区讨论,或者观看相关的技术分享和教程视频。环境变量可能用于配置Qt.py的行为或指定特定的Qt绑定版本,但具体细节需要查阅项目文档。 ### 子集与分支绑定特定的代码 开发者在编写跨绑定的代码时,可能需要使用到子集的概念,即Qt.py提供的一个子集API,它包含了所有绑定共有的功能。对于特定绑定的特定功能,开发者可能需要编写特定的代码分支,并在运行时选择适当的分支执行。 ### 优先选择与QtSiteConfig 在某些情况下,开发者可能需要指定优先使用的绑定,或者调整QtSiteConfig来满足特定的配置需求。这些配置允许开发者在不同环境和需求下进行更精细的控制。 总体来说,Qt.py为开发者提供了一个强大且灵活的工具,用于跨Qt绑定的开发,显著降低了开发和维护多版本Qt应用的复杂性。

Got keys from plugin meta data ("ibus") QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforminputcontexts" ... loaded library "/home/rvbust/.local/lib/python3.10/site-packages/PyQt5/Qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so" QFactoryLoader::QFactoryLoader() checking directory path "/home/rvbust/.local/lib/python3.10/site-packages/PyQt5/Qt5/plugins/styles" ... QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/styles" ... Traceback (most recent call last): File "/home/rvbust/Documents/FlexLocation_new/ViewerApp.py", line 30, in <module> main() File "/home/rvbust/Documents/FlexLocation_new/ViewerApp.py", line 24, in main main_window = GlyphViewerApp() File "/home/rvbust/Documents/FlexLocation_new/ViewerApp.py", line 10, in __init__ self.setup() File "/home/rvbust/Documents/FlexLocation_new/ViewerApp.py", line 15, in setup self.ui.setupUi(self) File "/home/rvbust/Documents/FlexLocation_new/glyph_view.py", line 33, in setupUi self.actionLoadCloud = QAction(MainWindow) TypeError: 'PySide6.QtGui.QAction.__init__' called with wrong argument types: PySide6.QtGui.QAction.__init__(GlyphViewerApp) Supported signatures: PySide6.QtGui.QAction.__init__(Union[PySide6.QtGui.QIcon, PySide6.QtGui.QPixmap], str, Optional[PySide6.QtCore.QObject] = None) PySide6.QtGui.QAction.__init__(Optional[PySide6.QtCore.QObject] = None) PySide6.QtGui.QAction.__init__(str, Optional[PySide6.QtCore.QObject] = None) QLibraryPrivate::unload succeeded on "/home/rvbust/.local/lib/python3.10/site-packages/PyQt5/Qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so" QLibraryPrivate::unload succeeded on "/home/rvbust/.local/lib/python3.10/site-packages/PyQt5/Qt5/plugins/platformthemes/libqgtk3.so" QLibraryPrivate::unload succeeded on "/home/rvbust/.local/lib/python3.10/site-packages/PyQt5/Qt5/plugins/platforms/libqxcb.so" QLibraryPrivate::unload succeeded on "Xcursor" (faked)

2023-06-06 上传