Qt - сериализация / десериализация текста и изображения - PullRequest
0 голосов
/ 06 апреля 2010

Я хочу использовать поле (вроде QTextEdit), которое является способным хранить изображение и текст (как это делает MS Word), и оно сериализует и десериализует данные изображения + текста. Есть ли какой-нибудь виджет Qt, который позволяет нам одновременно манипулировать изображением и текстом, и он имеет функции set / get, которые работают с сериализуемым типом? Другими словами, я хочу знать, существует ли какой-либо виджет Qt, который может хранить картинку + текст и имеет функцию «get» типов, которая возвращает содержимое редактируемой области этого виджета, то есть Type, который можно сериализовать с QDataStream.

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

Я хотел бы создать структуру данных, которая содержит текст и изображение для вас. Затем вы можете использовать эту структуру данных (или объект) в вашем отображаемом виджете. Это позволяет сериализовать ваши данные, не пытаясь сериализовать виджет, что, вероятно, не то, что вам нужно.

Для сериализации я рекомендую вам взглянуть на QDataStream .

Следующие сообщения предоставляют некоторые подробности о QDataStream:

Сериализация с Qt

Перегрузка операторов QDataStream << и >> для пользовательского типа

Чтение / запись QObject

1 голос
/ 06 апреля 2010

Не думаю, что есть что-то, что удовлетворит все ваши потребности.

Для отображения текста + изображений вы можете использовать QTextEdit, который способен отображать довольно богатое подмножество HTML. По сути, QTextEdit позволяет вам читать и редактировать объект QTextDocument, что по сути то, что вы хотите сериализовать и десериализовать.

Но, насколько я знаю, по умолчанию нет реализации сериализации для QTextDocument. Я видел запрос на эту функцию, но кто знает, когда она будет реализована: http://bugreports.qt -project.org / просмотр / QTBUG-9258

Редактировать 1: Реализация сериализации / десериализации QTextDocument не должна быть слишком сложной, потому что все строительные блоки QTextDocument являются сериализуемыми. Изображения хранятся в QTextDocument и доступны как QVariants, сам html - это просто строка, поэтому не должно быть слишком сложно сложить все вместе.

0 голосов
/ 14 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...