crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как достать картинки из QHelpEngine?
4ert
  опции профиля:
сообщение 13.2.2009, 17:59
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 10.2.2009
Пользователь №: 542

Спасибо сказали: 0 раз(а)




Репутация:   0  


В общем, дело такое: достаю html-код из QHelpEngine:
QString helpData = helpEngine->fileData(url);

В url - адрес страницы qthelp'а - qthelp://helpsystem/doc/index.html, например.

Все достается нормально, передаю в TextBrowser:
browser->setHtml(helpData);


Текст выдается на ура, а вот картинки... =) Как достать картинки из этих QtCompressedHelp-файлов? =) Может быть, следует использовать что-то вместо TextBrowser?

P.S. Пожалуйста, не предлагайте альтернативный варианты отображения справки в QtAssistant, он мне не подходит =)
Причина редактирования: используй тэг code, вместо codebox
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.2.2009, 18:23
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


4ert, может картинки там отсутствуют, лежат себе в отдельном каталоге?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 14.2.2009, 12:51
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


4ert, глянь Simple Text Viewer Example, там вроде описано то, что тебе нужно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
4ert
  опции профиля:
сообщение 16.2.2009, 11:20
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 10.2.2009
Пользователь №: 542

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
4ert, может картинки там отсутствуют, лежат себе в отдельном каталоге?

Все дело в том, что когда создается Qt Compressed Help файл, в него, наряду с html'ями засовываются все вспомогательные файлы: css, картинки, текстовые файлы и тд. Получается один файл со всем необходимым для отображения помощи =)
В классе QHelpEngineCore есть функция, которая возвращает содержимое файла по url - QByteArray fileData ( const QUrl & url ) const
естесственно, когда передаешь код html-файла, полученный таким образом, QTextBrowser'у, он ищет картинки совсем не в файле помощи =)

Цитата
4ert, глянь Simple Text Viewer Example, там вроде описано то, что тебе нужно.

спасибо, но тут описано как раз то, как использовать QtAssistant =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
4ert
  опции профиля:
сообщение 17.2.2009, 11:53
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 10.2.2009
Пользователь №: 542

Спасибо сказали: 0 раз(а)




Репутация:   0  


Господа, вопрос снят =)
Нашел следующий способ решить эту проблему: при старте программы QtCompressedHelp-файл распаковывается в /tmp, а там уж QTextBrowser'ом все отлично просматривается =)
Код распаковки:
CODE

QList<QUrl> fileList = helpEngine->files("helpsystem",QStringList(),QString());//создаем список файлов

QDir docDir("/tmp");//создаем директорию для документации
if (docDir.mkdir("/tmp/doc"))
cout<<"directory made"<<endl;

QFile docFile;
for (int i=0;i<fileList.count();i++)//перемещаемся по списку файлов...
{
docFile.setFileName("/tmp"+fileList[i].path());//...устанавливаем имя файла...
if (docFile.open(QIODevice::ReadWrite))
{
docFile.write(helpEngine->fileData(fileList[i]));//...получаем его из HelpEngine'а и записываем
docFile.close();
}
}

Код открытия страницы в браузере:
CODE
browser->setSource("/tmp/"+url.path());


спасибо за внимание и понимание =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 3:39