Pickle de Python. QLabel non sérialisable.. - Python - Programmation
Marsh Posté le 18-07-2007 à 12:56:40
Un QLabel est probablement lié à plein d'autres machins de Qt, sérialise le label du QLabel et baste
Marsh Posté le 18-07-2007 à 14:16:58
Voici mes objets :
class TreatmentObjectUI(ObjectUI, QtGui.QLabel):
colorFix = QtCore.Qt.darkGray
colorMoving = QtCore.Qt.lightGray
colorFill = QtCore.Qt.darkGray
"""
Graphical Objects of a treatment
"""
def __init__(self, _Name, _QPPosition, parent=None):
ObjectUI.__init__(self, QtCore.QSize(50, 60), _QPPosition, parent)
Comment sérialiser le "label" ?
Merci de m'aider
Marsh Posté le 18-07-2007 à 14:22:22
aucune idée, je connais pas qt
Marsh Posté le 18-07-2007 à 14:24:49
Hmm, ok domage. Car en fait c'est pas comme en java ou tu dis quelles classes tu veux serialiser, dans python tu sérialise un seul objet et si cet objet contient des objets non sérialisables... dtc.
Marsh Posté le 18-07-2007 à 14:30:38
jijiz a écrit : Hmm, ok domage. Car en fait c'est pas comme en java ou tu dis quelles classes tu veux serialiser, dans python tu sérialise un seul objet et si cet objet contient des objets non sérialisables... dtc. |
C'est exactement pareil qu'en java, il y a des objets sérialisables et des objets non sérialisables
Marsh Posté le 03-09-2007 à 22:10:01
Tu as essayé avec deepcopy() ? Bien que je doute que ça change quoique ce soit...
Marsh Posté le 16-11-2007 à 14:23:36
d'après la doc PyQt
http://www.riverbankcomputing.com/ [...] r-pickling
les classes sur lesquelles on peu utiliser pickle sont les limitées à celles-ci:
* QByteArray
* QChar
* QColor
* QDate
* QDateTime
* QKeySequence
* QLatin1Char
* QLatin1String
* QLine
* QLineF
* QMatrix
* QPoint
* QPointF
* QPolygon
* QRect
* QRectF
* QSize
* QSizeF
* QString
* QTime
je suppose que tu peux faire un truc du genre: pickle.dump(monQLabel.text(), output, 1) devrait sauver ce que continet le QLabel, et c'est peut-être suffisant dans ton cas ...
Marsh Posté le 18-07-2007 à 10:49:56
Bonjour à tous et à toutes,
J'éssaye de sauvegarder un objet de mon projet python graçe à l'interface pickle. Mais une érreur sort :
raise PicklingError("Can't pickle %r object: %r" %
pickle.PicklingError: Can't pickle 'PlaceObjectUI' object: <Graph.PlaceObjectUI.PlaceObjectUI object at 0x01AC7C90>
J'aimerais quelques eclaircissements sur ce problème.
Edit : j'ai remarqué lorsqu'une classe hérite de QLabel, les objets instanciés via cette classe ne sont plus sérialisables. Pourquoi? peut on contourner ce problème.?
Merci
Voici le code :
Message édité par jijiz le 18-07-2007 à 12:16:57