Название: Передача QTextDocument с картинками через буфер обмена Отправлено: xintrea от Ноябрь 03, 2010, 16:02 Здравствуйте!
Имеется некий текст (или даже несколько текстов), который вводится через QTextEdit и может содержать картинки. Нужно передать этот текст через буфер обмена вместе с картинками. Проблема в том, что QTextDocument не имеет конструктора копирования, который необходим для процедуры помещения в буфер обмена. Тогда я попробовал сделать из QTextDocument объект QTextDocumentFragment, и передавать его. Он передается, но все картинки теряются. Я поковырялся немного, но так и не понял, включаются ли байты данных картинок в объект QTextDocumentFragment или нет. В документации ничего внятного не написано. Тест показал, что вроде как не включаются, но может я чего неправильно понял, и картинки можно передать в составе объекта QTextDocumentFragment. Вопрос. Нужно ли дальше ковырять QTextDocumentFragment, или в нем однозначно нет байтов данных для картинок? Кто уже встречался с такой проблемой, что можете сказать? Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: crossly от Ноябрь 03, 2010, 16:06 а если использовать toHtml() setHtml()??
Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: xintrea от Ноябрь 03, 2010, 16:10 а если использовать toHtml() setHtml()?? Тогда картинок точно нет, потому что в HTML-коде нет данных для картинок, например в Mime формате. Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: crossly от Ноябрь 03, 2010, 16:16 стоит прочитать асистент на тему
Код: void QTextDocument::addResource ( int type, const QUrl & name, const QVariant & resource ) Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: xintrea от Ноябрь 03, 2010, 16:35 стоит прочитать асистент на тему Код: void QTextDocument::addResource ( int type, const QUrl & name, const QVariant & resource ) Во-первых, там написано про QTextDocument, у которого, как сказано выше, нет конструктора копирования. Во-вторых, там написано про какой-то кеш ресурсов, совершенно не объясняя что это и где он находится. То есть неясно, включён ли кеш ресурсов в объект QTextDocument, или находится где-то отдельно. В третьих неясно, как этот кеш ресурсов прикрепить к QTextDocumentFragment, и вообще, содержит ли QTextDocumentFragment в себе хоть какой-то кеш ресурсов, и как до него достучаться. Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: crossly от Ноябрь 03, 2010, 21:52 Цитировать То есть неясно, включён ли кеш ресурсов в объект QTextDocument, или находится где-то отдельно. именно он и содержит .... правда в приватной части...Цитировать В третьих неясно, как этот кеш ресурсов прикрепить к QTextDocumentFragment, и вообще, содержит ли QTextDocumentFragment в себе хоть какой-то кеш ресурсов, и как до него достучаться. может брать из QTextDocument Код: QTextDocumentFragment fromHtml ( const QString & text, const QTextDocument * resourceProvider ) Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: xintrea от Ноябрь 03, 2010, 22:46 может брать из QTextDocument Код: QTextDocumentFragment fromHtml ( const QString & text, const QTextDocument * resourceProvider ) Создавать QTextDocumentFragment из QTextDocument я пробовал с помощью как раз вот такого конструктора - в QTextDocumentFragment ресурсы не передаются. Возможно, что fromHtml() в варианте с использованием resourceProvider будет содержать ресурсы. Ну я уже все переделал, сделал выдиралку картинок, и перекидываю список картинок через QMap< QString name, QImage image>. Название: Re: Передача QTextDocument с картинками через буфер обмена Отправлено: crossly от Ноябрь 03, 2010, 22:51 Цитировать Ну я уже все переделал, сделал выдиралку картинок, и перекидываю список картинок через QMap< QString name, QImage image>. ну слава богу что дошло.... :) |