Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1926 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Pickle de Python. QLabel non sérialisable..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pickle de Python. QLabel non sérialisable..

n°1588010
jijiz
Posté le 18-07-2007 à 10:49:56  profilanswer
 

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 :
 

Code :
  1. def saving(self, _nameFile = None):
  2.         x = copy.copy(self)
  3.         output = open('data.pkl', 'wb')
  4.         pickle.dump(self, output, 1)
  5.         output.close()
  6.        
  7.     def loading(self, _nameFile = None):
  8.         pkl_file = open('data.pkl', 'rb')
  9.         data1 = pickle.load(pkl_file)
  10.         pprint.pprint(data1)
  11.         pkl_file.close()


Message édité par jijiz le 18-07-2007 à 12:16:57
mood
Publicité
Posté le 18-07-2007 à 10:49:56  profilanswer
 

n°1588159
masklinn
í dag viðrar vel til loftárása
Posté le 18-07-2007 à 12:56:40  profilanswer
 

Un QLabel est probablement lié à plein d'autres machins de Qt, sérialise le label du QLabel et baste [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1588230
jijiz
Posté le 18-07-2007 à 14:16:58  profilanswer
 

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

n°1588237
masklinn
í dag viðrar vel til loftárása
Posté le 18-07-2007 à 14:22:22  profilanswer
 

aucune idée, je connais pas qt [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1588245
jijiz
Posté le 18-07-2007 à 14:24:49  profilanswer
 

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.

n°1588249
masklinn
í dag viðrar vel til loftárása
Posté le 18-07-2007 à 14:30:38  profilanswer
 

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.


[:pingouino]
 
C'est exactement pareil qu'en java, il y a des objets sérialisables et des objets non sérialisables [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1588257
jijiz
Posté le 18-07-2007 à 14:38:00  profilanswer
 

Si quelqu'un peut éclaircir ceci ca ferait plaisir..

n°1607778
guybrush02
Posté le 03-09-2007 à 22:10:01  profilanswer
 

Tu as essayé avec deepcopy() ? Bien que je doute que ça change quoique ce soit...

n°1643991
PowerMalo
Posté le 16-11-2007 à 14:23:36  profilanswer
 

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 ...
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Pickle de Python. QLabel non sérialisable..

 

Sujets relatifs
python et la phonétique[python] liste d'arguments de fonction ?
Cherche programmeurs python débutants ou pro pour projet simpleAffectation en python, !
[Débutant] Delphi ou PythonPython + jabber
Python Win 2.5 ne démarre pas !Comment organiser la superposition de QLabel (Résolu)
Listes en python : IndexError: list index out of range HmmmPython vs VB.net
Plus de sujets relatifs à : Pickle de Python. QLabel non sérialisable..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR