Как реализовать сериализацию QTextDocument - PullRequest
0 голосов
/ 15 июля 2010

Этот вопрос я задавал ранее и только что получил ответ, что для этого есть открытая ошибка. Но это действительно необходимая функция, и, я думаю, что каждый программист Qt, который программирует более или менее серьезное приложение, вполне вероятно, что там используется QTextEdit, а данные, вставленные в QTextEdit, сериализуются и десериализуются. Таким образом, я считаю этот вопрос очень важным, и он может быть полезен для многих разработчиков Qt. Поэтому я решил обсудить с хорошими программистами, как реализовать оператор << (QDataStream, QTextDocument). В противном случае нам следует подождать, когда ребята из Qt будут любезны сделать это сами:). </p>

Так, скажем, в QTextEdit у меня есть некоторые картинки и текст. В разных фрагментах текст имеет разный формат. Как получить содержимое этого типа QTextEdit и как его сериализовать, чтобы потом показать, как оно было?

РЕДАКТИРОВАТЬ: я знаю, что я могу получить форматированный текст и изображения с помощью метода documnet (), который возвращает QTextDocument. Я также знаю, что QTextDocument не имеет оператора << (QDataStream, QTextDocument), и есть запрос на запись этого оператора, но он все еще открыт. Поэтому, пожалуйста, помогите мне написать этот метод. Я думаю, что я должен унаследовать класс QTextDocument, а затем добавить новый член (контейнер), который хранит все имена ресурсов, которые присутствуют в QTextEdit. Затем я должен сериализовать все ресурсы, перебирая их, используя контейнер, который я определил. Это хорошее решение? Если да, то не могли бы вы помочь мне реализовать? Если нет, то, пожалуйста, предоставьте мне лучшую идею. </p>

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Вы уже задавали этот вопрос в апреле:

Qt - сериализация / десериализация текста и изображения

Ответы все те же.

  1. Подождите, пока Qt исправит QTBUG-9258
  2. Выполните сериализацию самостоятельно

В зависимости от ваших потребностей, быстрым и грязным способом было бы получить HTML-представление содержимого с помощью QTextEdit :: toHtml , затем base64 кодировать его . Я не уверен, как это будет работать с фотографиями.

Пожалуйста, не перепечатывайте одни и те же вопросы.

0 голосов
/ 14 декабря 2010
...