[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    Re: [PyQt] Pickle a QPolygon in python 3.6+ and PyQt5
From:       Phil Thompson <phil () riverbankcomputing ! com>
Date:       2019-03-06 11:47:46
Message-ID: 30DFDE51-A2D3-4C64-80CE-6AD5FD9C65BA () riverbankcomputing ! com
[Download RAW message or body]

On 1 Mar 2019, at 9:32 am, William Hoburg <Howil@gmx.net> wrote:
> 
> Hallo,
> 
> I think there is a bug regarding the use of QPolygon with pickel. Due to \
> documentation (http://pyqt.sourceforge.net/Docs/PyQt5/pickle.html) using pickle \
> with QPolygon is supported but I get an error.  
> I posted the following request on stackoverflow (please see \
> https://stackoverflow.com/questions/54928431/pickle-a-qpolygon-in-python-3-6-and-pyqt5) \
> and was asked to write a bug report. 
> Here the following request from stackoverflow including a simple example:
> I try to pickle a QPolygon and load it afterwards, but I get an error. I have done \
> this on Python2 with PyQt4 but want to use it now on Python3 with PyQt5. 
> I do not want to read/load data generated with Python 2! The pickle file is simply \
> used to temporarily store Qt-elements like QPolygons from Python3 to Python3. 
> I have tested different protocol options from 1-4 for pickle.dump() and tried to \
> use the "fix_imports=True" option which should not make a difference in Python3. 
> Here is my simplified code:
> 
> #####################################
> 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)
> 
> #####################################
> 
> 
> I get the following error message but can't do anything with it:
> elem = pickle.load(f, encoding='bytes')  # , fix_imports=True)
> TypeError: index 0 has type 'int' but 'QPoint' is expected
> 
> 
> 
> 
> Is there maybe any alternative to pickle which can be used to easily store \
> different types of data like strings, QPolygones and so on?

Should be fixed in tonight's PyQt5 snapshot.

Thanks,
Phil

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
https://www.riverbankcomputing.com/mailman/listinfo/pyqt


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic