Как достать картинки из QHelpEngine? |
Здравствуйте, гость ( Вход | Регистрация )
Как достать картинки из QHelpEngine? |
4ert |
13.2.2009, 17:59
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 10.2.2009 Пользователь №: 542 Спасибо сказали: 0 раз(а) Репутация: 0 |
В общем, дело такое: достаю html-код из QHelpEngine:
В url - адрес страницы qthelp'а - qthelp://helpsystem/doc/index.html, например. Все достается нормально, передаю в TextBrowser:
Текст выдается на ура, а вот картинки... =) Как достать картинки из этих 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()); спасибо за внимание и понимание =) |
|
|
Текстовая версия | Сейчас: 27.4.2024, 3:39 |