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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как формировать пути к данным в программе с QWebView  (Прочитано 5205 раз)
vdann
Гость
« : Март 25, 2011, 14:56 »

Как правильно формировать пути в html-строке или точнее относительно чего они должны быть прописаны?
Я использую такой код (папка smiles лежит в каталоге с программой)
Код:
QWebView webView;
webView.setHtml(QObject::tr("<img src='smiles/like.gif'>"));
webView.show();

- выводит пустой виджет
Записан
Fess
Гость
« Ответ #1 : Март 25, 2011, 15:03 »

пробуйте ./относительный/путь/от/исполняемого/файла/
лучше заносите все ваши смайлы в ресурсы и обращайтесь через ":/resource-path/file"
Записан
Denjs
Гость
« Ответ #2 : Март 25, 2011, 15:13 »

полагая, что относительные пути задаются всегда относитльно адреса отображаемой страницы,
а QWebView - это вполне себе натуральный браузер и есть (и успешно в инет постучится если есть связь и подсунуть ему ссылку) - то, очевидно (по крайней мере очень похоже на то), что "ваш относительный путь"("smiles/like.gif") - он отсчитывается относительно того, что написано в url()

т.е. вероятно, при установке html - надо бы наверное и второй парметр не опускать... не?
Цитировать
void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() )
« Последнее редактирование: Март 25, 2011, 15:15 от Denjs » Записан
vdann
Гость
« Ответ #3 : Март 25, 2011, 17:24 »

пробуйте ./относительный/путь/от/исполняемого/файла/
лучше заносите все ваши смайлы в ресурсы и обращайтесь через ":/resource-path/file"

'./относительный/путь/от/исполняемого/файла/' и 'относительный/путь/от/исполняемого/файла/'
ведут себя одинаково, с ресурсами работает без проблем, но количество смайликов может быть разным, по этому в ресурсы их нельзя

полагая, что относительные пути задаются всегда относитльно адреса отображаемой страницы,
а QWebView - это вполне себе натуральный браузер и есть (и успешно в инет постучится если есть связь и подсунуть ему ссылку) - то, очевидно (по крайней мере очень похоже на то), что "ваш относительный путь"("smiles/like.gif") - он отсчитывается относительно того, что написано в url()

т.е. вероятно, при установке html - надо бы наверное и второй парметр не опускать... не?
Цитировать
void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() )

то есть что-то вроде того
Код:
	
QString s("smiles/angel.gif");
ui.webView->setHtml(tr("<hr><img src='%1'>").arg(s), QUrl::fromLocalFile(QDir::currentPath()));

колупался, колупался - заработало!, но только таким образом -
Код:
QString s("smiles/angel.gif");
QUrl url(QUrl::fromLocalFile(dir.absoluteFilePath("smiles")));
QString path(url.path());
ui.webView->setHtml(tr("<hr><img src='%1'>").arg(s), url);
может кто прокоментирует почему так?
Записан
Denjs
Гость
« Ответ #4 : Март 25, 2011, 19:28 »

Не уверен, но может "smiles" - это не подкаталог текущего каталога ( QDir::currentPath() ) ))))
проверьте что вам отдает QDir::currentPath() и что отдает dir.absoluteFilePath("smiles") ?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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