Russian Qt Forum
Ноябрь 25, 2024, 10:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача QTextDocument с картинками через буфер обмена  (Прочитано 4023 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Ноябрь 03, 2010, 16:02 »

Здравствуйте!


Имеется некий текст (или даже несколько текстов), который вводится через QTextEdit и может содержать картинки. Нужно передать этот текст через буфер обмена вместе с картинками.

Проблема в том, что QTextDocument не имеет конструктора копирования, который необходим для процедуры помещения в буфер обмена.

Тогда я попробовал сделать из QTextDocument объект QTextDocumentFragment, и передавать его. Он передается, но все картинки теряются. Я поковырялся немного, но так и не понял, включаются ли байты данных картинок в объект QTextDocumentFragment или нет. В документации ничего внятного не написано. Тест показал, что вроде как не включаются, но может я чего неправильно понял, и картинки можно передать в составе объекта QTextDocumentFragment.

Вопрос. Нужно ли дальше ковырять QTextDocumentFragment, или в нем однозначно нет байтов данных для картинок? Кто уже встречался с такой проблемой, что можете сказать?
Записан

Собираю информацию по крупицам
http://webhamster.ru
crossly
Гость
« Ответ #1 : Ноябрь 03, 2010, 16:06 »

а если использовать toHtml() setHtml()??
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Ноябрь 03, 2010, 16:10 »

а если использовать toHtml() setHtml()??

Тогда картинок точно нет, потому что в HTML-коде нет данных для картинок, например в Mime формате.
Записан

Собираю информацию по крупицам
http://webhamster.ru
crossly
Гость
« Ответ #3 : Ноябрь 03, 2010, 16:16 »

стоит прочитать асистент на тему
Код:
void QTextDocument::addResource ( int type, const QUrl & name, const QVariant & resource )
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #4 : Ноябрь 03, 2010, 16:35 »

стоит прочитать асистент на тему
Код:
void QTextDocument::addResource ( int type, const QUrl & name, const QVariant & resource )

Во-первых, там написано про QTextDocument, у которого, как сказано выше, нет конструктора копирования.

Во-вторых, там написано про какой-то кеш ресурсов, совершенно не объясняя что это и где он находится. То есть неясно, включён ли кеш ресурсов в объект QTextDocument, или находится где-то отдельно.

В третьих неясно, как этот кеш ресурсов прикрепить к QTextDocumentFragment, и вообще, содержит ли QTextDocumentFragment в себе хоть какой-то кеш ресурсов, и как до него достучаться.
Записан

Собираю информацию по крупицам
http://webhamster.ru
crossly
Гость
« Ответ #5 : Ноябрь 03, 2010, 21:52 »

Цитировать
То есть неясно, включён ли кеш ресурсов в объект QTextDocument, или находится где-то отдельно.
именно он и содержит .... правда в приватной части...
Цитировать
В третьих неясно, как этот кеш ресурсов прикрепить к QTextDocumentFragment, и вообще, содержит ли QTextDocumentFragment в себе хоть какой-то кеш ресурсов, и как до него достучаться.
может брать из QTextDocument
Код:
QTextDocumentFragment	fromHtml ( const QString & text, const QTextDocument * resourceProvider )
QTextDocumentFragment ( const QTextDocument * document )
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #6 : Ноябрь 03, 2010, 22:46 »

может брать из QTextDocument
Код:
QTextDocumentFragment	fromHtml ( const QString & text, const QTextDocument * resourceProvider )
QTextDocumentFragment ( const QTextDocument * document )

Создавать QTextDocumentFragment из QTextDocument я пробовал с помощью как раз вот такого конструктора - в QTextDocumentFragment ресурсы не передаются.

Возможно, что fromHtml() в варианте с использованием resourceProvider будет содержать ресурсы.

Ну я уже все переделал, сделал выдиралку картинок, и перекидываю список картинок через QMap< QString name, QImage image>.
Записан

Собираю информацию по крупицам
http://webhamster.ru
crossly
Гость
« Ответ #7 : Ноябрь 03, 2010, 22:51 »

Цитировать
Ну я уже все переделал, сделал выдиралку картинок, и перекидываю список картинок через QMap< QString name, QImage image>.
ну слава богу что дошло.... Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.127 секунд. Запросов: 23.