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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTextDocument и QVariant QTextDocument::resource ( int type, const QUrl & name )  (Прочитано 2944 раз)
TukiNov
Гость
« : Март 24, 2010, 13:33 »

Доброго времени суток Улыбающийся
Столкнулся с такое проблемой.
Есть документ html с ссылками на изображения, он хранится в БД вместе с изображениями.
Примерный вид:
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" ><title>XXX
</title><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;" bgcolor="#ffffff">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br ></p>
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" color:#000000; background-color:#ffffff;">XXX</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><img src="1-20.png" width="297" height="360" ><span style=" color:#000000;"><br ></span></p>
....
</body></html>
Как видите ссылка на файл в виде <img src="1-20.png" width="297" height="360" >
Достаю знач его из базы с изображениями, изображения подключаю к QTextDocument
Код:
...
QTextDocument * textDocument = new QTextDocument(this);
....
while(select.next()){
    QString url = select.value(0).toString();
    QByteArray ba = select.value(1).toByteArray();
    QString format = select.value(2).toString();
    QImage image;
    image.loadFromData(ba, format.toAscii().data());
    textDocument->addResource(QTextDocument::ImageResource,
                                                  QUrl(url), image);
  }
  textDocument->setHtml(html);
  viewTextEdit->setDocument(textDocument);
все изображения загрузились, и все отлично отображается.
Далее, допустим текст отредактировали, и удалили какие то изображения. Теперь заносим его опять в базу, и когда я пытаюсь читать ресурс по url у меня пустой QVariant получается
делаю так :
Код:
    QVariant variant = textDocument->resource(QTextDocument::ImageResource, QUrl("1-20.png"));
че то не понимаю ничего Улыбающийся
Помогите плиз)
Записан
TukiNov
Гость
« Ответ #1 : Март 24, 2010, 15:17 »

Мдя, второй день тупки дал положительные результаты. Покурив ман по QVariant понял что не так делал Улыбающийся
Код:
  foreach(QString url, list){
    QVariant variant;
    variant= textDocument->resource(QTextDocument::ImageResource, QUrl(url, QUrl::StrictMode));
    QImage img = variant.value<QImage>();
    qDebug() << img.size();
  }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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