2010-07-15 2 views
0

Cette question que j'ai déjà posée et que je viens de recevoir répond qu'il y a un bug ouvert pour cela. Mais c'est une fonctionnalité vraiment nécessaire et, je suppose, chaque programmeur Qt qui programme une application plus ou moins sérieuse, il est très probable qu'il y ait un QTextEdit utilisé et que les données insérées dans QTextEdit soient sérialisées et désérialisées. Ainsi, je considère ce problème très important et il peut être utile pour de nombreux développeurs Qt. J'ai donc décidé de discuter avec les bons programmeurs comment implémenter l'opérateur < < (QDataStream, QTextDocument). Sinon, nous devrions attendre quand les gars de Qt seront gentils de le faire par eux-mêmes :).Comment implémenter la sérialisation de QTextDocument

Ainsi, dans un QTextEdit, j'ai des images et du texte. Dans différents fragments, le texte a un format différent. Comment obtenir le contenu de ce type de QTextEdit et comment sérialiser, afin de montrer alors comme il était?

EDIT: Je sais que je peux obtenir le texte et les images en utilisant la méthode documnet(), qui renvoie QTextDocument. Je sais aussi que QTextDocument n'a pas d'opérateur < < (QDataStream, QTextDocument) et qu'il y a une demande d'écriture de cet opérateur mais il est toujours ouvert. Alors s'il vous plaît aidez-moi à écrire cette méthode. Je suppose que je devrais hériter de la classe QTextDocument, puis ajouter un nouveau membre (un conteneur) qui stocke tous les noms de ressources présents dans QTextEdit. Ensuite, je devrais sérialiser toutes les ressources en itérant sur eux en utilisant le conteneur que j'ai défini. Est-ce une bonne solution? Si oui, alors pourriez-vous m'aider s'il vous plaît à mettre en œuvre? Si non, s'il vous plaît, donnez-moi une meilleure idée.

Répondre

2

Vous avez déjà posé cette question en Avril:

Qt - serialize/deserialaize text and picture

Les réponses sont toujours les mêmes.

  1. Attendez que Qt pour corriger QTBUG-9258
  2. Perform the serialization yourself

En fonction de vos besoins de façon rapide et sale de le faire serait d'obtenir la représentation HTML du contenu avec QTextEdit::toHtml, puis base64 encode it. Je ne suis pas sûr de savoir comment cela fonctionnera avec les images.

Ne postez pas les mêmes questions.

+0

Mais il est encore ouvert et aucune réponse. J'essaie donc de changer la formulation de la requête. – Narek

+0

Assez juste, avril était il y a un certain temps. Malheureusement, la situation n'a pas changé. Je recommande de le faire vous-même, car vous ne savez vraiment pas quand Nokia va corriger ce bug. – Casey

Questions connexes