IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

convertir un QIODevice en un QString


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut convertir un QIODevice en un QString
    Bonjour,
    comment convertir un QIODevice en un QString?
    Merci

  2. #2
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Si tu nous expliquais plutôt où tu veux en venir?

    As tu lu la doc Qt concernant QIODevice? Si oui, as tu compris son rôle? Si oui, pourquoi voudrais tu faire une telle chose?
    Un clavier Azerty en vaut deux.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    En fait j'ai pas compris le rôle de QIODevice.
    pour l'utilisation: j'ai récupéré des données dans un QIODevice et je veut les affichés
    Merci

  4. #4
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Comment les as tu récupéré? Quel type de QIODevice? Tu peux nous montrer ton code?

    QIODevice te permet de lire/écrire dans différents supports comme QFile, QTcpSocket, ect...
    Un clavier Azerty en vaut deux.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    QIODevice est une couche d'abstraction pour tous les périphériques, pour faire simple : cela permet que tous aient au moins des fonctionnalités minimales, des fonctions aux noms identiques...

    QIODevice fournit la méthode readAll() pour récupérer le contenu dans un QByteArray.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Et je voudrais rajouter, qu'une QString peut se construire à partir d'un QByteArray.
    ( Ou vous pouvez aussi utiliser la fonction data() pour récupéré un char* ( mais ça va surement affiché un peu de tout et n'importe quoi :p )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre actif Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Points : 273
    Points
    273
    Par défaut
    On peut toujours passer par la version hexa des QByteArray

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byteArray.toHex().data()
    Ce qui rend le QString enregistrable dans un fichier texte, et lisible

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    merci pour tous.
    j'ai un autre problème, en créant un objet de type QIODevice j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    error: cannot allocate an object of type 'QIODevice'
    error:   because the following virtual functions are abstract:
    c:/Qt/4.5.0/include/QtCore/../../src/corelib/io/qiodevice.h:154: error:  virtual qint64 QIODevice::readData(char*, qint64)
    c:/Qt/4.5.0/include/QtCore/../../src/corelib/io/qiodevice.h:156: error:  virtual qint64 QIODevice::writeData(const char*, qint64)
    quelqu'un peut m'expliquer !

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    QIODevice n'est pas prévue pour être utilisée directement, c'est une classe virtuelle. C'est une interface, elle doit être implémentée avant d'être utilisée. (En fait, seules deux fonctions ne sont pas implémentées, la lecture et l'écriture : pour que ça fonctionne, il faut que cela soit implémenté !).

    Tu dois donc instancier un fils de QIODevice, selon ce que tu veux faire.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Membre actif Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Points : 273
    Points
    273
    Par défaut
    Si tu n'a pas besoin de gérer ton contenu avec un fichier, et que c'est en local, utilise QBuffer

Discussions similaires

  1. Convertir char vers QString
    Par darkwall_37 dans le forum Débuter
    Réponses: 3
    Dernier message: 25/05/2009, 11h49
  2. Convertir QString en wchar_t*
    Par jerome71300 dans le forum Débuter
    Réponses: 4
    Dernier message: 09/04/2008, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo