[C++]Tetravex QDataStream et passage de unsigned short

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [C++]Tetravex QDataStream et passage de unsigned short

Message  aleben89 le Mer 06 Avr 2011, 12:19

Bonjour,

Dans le cadre de l’implémentation du drag and drop, je passe par des QDataStream pour passer les éléments d'un widget à un autre. Cependant lorsque que je récupère mes éléments à la sortie de QDataStream, ils sont mis à leur valeur par défaut (0 pour un unsigned short ou ' ' pour un char). Est-ce que j'ai oublié quelque chose ou est-ce normale?

à l'entrée:
Code:
QByteArray itemData;
   QDataStream dataStream(&itemData,QIODevice::WriteOnly);
   unsigned short test;
   test=1024;
   dataStream <<testn;
   QMimeData *mimeData=new QMimeData;
   mimeData->setData("application/x-dnditemdata", itemData);

à la sortie:

Code:
QByteArray itemData;
   QDataStream dataStream(&itemData,QIODevice::ReadOnly);
   unsigned short code;

   dataStream >>code ;

merci de m'aider

Aleben89


Dernière édition par aleben89 le Mer 06 Avr 2011, 14:59, édité 2 fois

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  smb le Mer 06 Avr 2011, 13:35

Quel est le lien entre le code "à l'entrée" et le code "à la sortie" ?

Comme tu le montres, je n'en vois pas !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  aleben89 le Mer 06 Avr 2011, 13:57

le code de l'entrée est dans ma méthode void mousePressEvent(QMouseEvent *event); du contenu
et le code à la sortie est dans ma méthode void dropEvent(QDropEvent *event); du conteneur

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  smb le Mer 06 Avr 2011, 14:08

aleben89 a écrit:le code de l'entrée est dans ma méthode void mousePressEvent(QMouseEvent *event); du contenu
et le code à la sortie est dans ma méthode void dropEvent(QDropEvent *event); du conteneur

Tu n'as pas répondu à ma question !

Enfin, ...

Si tu mettais QByteArray itemData comme attribut de ta fenêtre, ça n'irait pas mieux ?

Car itemData est local aux méthodes dont tu parles !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  aleben89 le Mer 06 Avr 2011, 14:25

bon j'avoue qu'il y a un problème de communication car je ne vois pas ce que vous voulez me faire dire :p . Le problème étant que je veux communiqué entre 2 widgets différents :

TetraLabel
Code:

class TetraLabel : public QWidget
{
public:
   TetraLabel(Tetra=Tetra('1','1','1','1'),QWidget * parent=NULL);
   TetraLabel(Tetra);
   TetraLabel(const TetraLabel &);
   TetraLabel operator=(const TetraLabel &);

   Tetra getTetra();
   ~TetraLabel();
protected:
   void paintEvent(QPaintEvent * event);
   void mousePressEvent(QMouseEvent *event); //ici j'ai mon entree dans le QDataStream

private:
   QColor choixCouleur(char);
   Tetra * tetra;
   QWidget * parent;
};

CasePlateau:
Code:


class CasePlateau : public QLabel
{
   public:
      CasePlateau(TetraLabel *,QWidget * parent,int x=-1,int y=-1);
      ~CasePlateau();
   private:
      TetraLabel * tetraL;
      QLabel * label;
      bool position;
   protected:
      void paintEvent(QPaintEvent * event);
      void dragEnterEvent(QDragEnterEvent *event);
      void dropEvent(QDropEvent *event);//ici j'ai la sortie de mon QDataStream
};

je dois créé un QByteArray itemData dans une classe en commun ? et le passer en paramètre au constructeur de c'est 2 différents objets ?

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  smb le Mer 06 Avr 2011, 14:34

En fait, je répondais à la question initiale : pourquoi le code "à la sortie" place dans l'unsigned code la valeur 0.

Code:

QByteArray itemData;
QDataStream dataStream(&itemData,QIODevice::ReadOnly);
unsigned short code;
dataStream >>code ;

Ma réponse est : normal, car itemData est local à la méthode, et n'a rien à voir avec itemData du code "à l'entrée".

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  aleben89 le Mer 06 Avr 2011, 14:59

Merci beaucoup maintenant il transmet bien mes informations Smile je vais pouvoir continuer mon projet un grand merci Mr. SMB

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

resolu Re: [C++]Tetravex QDataStream et passage de unsigned short

Message  Contenu sponsorisé Aujourd'hui à 18:54


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum