小编HoW*_*Wil的帖子

在 python 3.6+ 和 PyQt5 中腌制 QPolygon

我尝试腌制 QPolygon 并随后加载它,但出现错误。我已经在 Python2 上使用 PyQt4 完成了此操作,但现在想在 Python3 上使用 PyQt5 使用它。

我不想读取/加载用 Python 2 生成的数据!pickle 文件仅用于临时存储 Qt 元素,例如从 Python3 到 Python3 的 QPolygon。

我已经为 pickle.dump() 测试了 1-4 不同的协议选项,并尝试使用“fix_imports=True”选项,该选项在 Python3 中不会产生影响。

这是我的简化代码

from PyQt5.QtGui import QPolygon
from PyQt5.QtCore import QPoint
import pickle

file_name = "test_pickle.chip"

with open(file_name, 'wb') as f:
    poly = QPolygon((QPoint(1, 1), QPoint(2, 2))) 
    pickle.dump(poly, f, protocol=2)  # , fix_imports=True)

# loading the data again
with open(file_name, 'rb') as f:
    elem = pickle.load(f, encoding='bytes')  # , fix_imports=True)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息,但无法对其执行任何操作:

elem …
Run Code Online (Sandbox Code Playgroud)

python pickle python-3.x pyqt5

5
推荐指数
1
解决办法
1161
查看次数

标签 统计

pickle ×1

pyqt5 ×1

python ×1

python-3.x ×1