从 PyQt4 迁移到 PyQt5 时遇到的问题
Issue faced while migrating from PyQt4 to PyQt5
我有一个 GUI 应用程序,big.I 在 Python 2.7 中有它。由于 Python 2 不再更新,我使用 2to3 模块将我的应用程序转换为 Python 3.8。我正面临这个问题,不知道如何解决。我提到了一些类似的问题,但没有得到任何结果。我有以下错误:
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
TypeError: qRegisterResourceData(int, bytes, bytes, bytes): argument 2 has unexpected type 'str'
我应该怎么做才能通过这个问题?
PyQt 上的资源文件实际上是 python 具有 base64 编码数据的脚本。
移植到较新的系统(python 3 和 Qt5)时需要正确更新这些文件。
一般来说,可以通过再次调用pyrcc
命令来完成(pyrcc5
或pyrcc5.exe
,如果两个Qt版本都安装了),但是它们可以手动移植,考虑以下几个方面:
- 导入语句明显修改为
PyQt5
;
- 所有变量(
qt_resource_data
和 qt_resource_name
)都是 bytes literals 并且需要 b'...'
前缀;
从 PyQt5 导入 QtCore
qt_resource_data = <b>b</b>"\
- 原始数据 -
“
qt_resource_name = <b>b</b>"\
- 原始数据 -
“
我有一个 GUI 应用程序,big.I 在 Python 2.7 中有它。由于 Python 2 不再更新,我使用 2to3 模块将我的应用程序转换为 Python 3.8。我正面临这个问题,不知道如何解决。我提到了一些类似的问题,但没有得到任何结果。我有以下错误:
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) TypeError: qRegisterResourceData(int, bytes, bytes, bytes): argument 2 has unexpected type 'str'
我应该怎么做才能通过这个问题?
PyQt 上的资源文件实际上是 python 具有 base64 编码数据的脚本。
移植到较新的系统(python 3 和 Qt5)时需要正确更新这些文件。
一般来说,可以通过再次调用pyrcc
命令来完成(pyrcc5
或pyrcc5.exe
,如果两个Qt版本都安装了),但是它们可以手动移植,考虑以下几个方面:
- 导入语句明显修改为
PyQt5
; - 所有变量(
qt_resource_data
和qt_resource_name
)都是 bytes literals 并且需要b'...'
前缀;
从 PyQt5 导入 QtCore
qt_resource_data = <b>b</b>"\
- 原始数据 -
“
qt_resource_name = <b>b</b>"\
- 原始数据 -
“