LappoSV пишет:Секундочку ... Какой путь...
QWebView::setHtml(onst QString & html,...)
Вот этот html должен содержать не путь к странице.. А саму страницу... На сколько я понял.
так саму страницу и содержит (html код)
А путь надо передавать в setUrl(). Собственно говоря, примеры уже есть. Сюда вставлю только src, если нужно остальное - могу куда-нибудь выложить архивом и дать ссылку.
P.S.:
файл с html либо должен лежать в папке, откуда запускается пример, либо необходимо прописать полный путь до него ( в примере с методом setUrl())
ПРимер с setHtml():
//main file
#include "viewer.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Viewer w;
w.show();
return a.exec();
}
//in viewer.h
#ifndef VIEWER_H
#define VIEWER_H
#include <QtGui/QMainWindow>
#include <QWidget>
#include <QtWebKit>
class QWebView;
class Viewer : public QMainWindow
{
Q_OBJECT
public:
Viewer(QWidget *parent = 0, Qt::WFlags flags = 0);
~Viewer();
QWebView* view_mes;
};
#endif // VIEWER_H
//in viewer.cpp
#include "viewer.h"
#include <QtWebKit>
#include <QString>
Viewer::Viewer(QWidget *parent, Qt::WFlags flags): QMainWindow(parent, flags)
{
view_mes = new QWebView(this);
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavaEnabled, true);
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
QString text_html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\
<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\
<title>iframe</title><style type=\"text/css\">HTML, BODY { background:transparent; padding:0; margin:0; border:0; overflow:hidden; }</style>\
</head><body><object style=\"height: 344px; width: 425px;\"><param value=\"http://www.youtube.com/v/3eLKrECd4x8\" name=\"movie\" />\
<param value=\"true\" name=\"allowFullScreen\" /><param value=\"always\" name=\"allowScriptAccess\" />\
<embed height=\"344\" width=\"425\" allowfullscreen=\"true\" type=\"application/x-shockwave-flash\" src=\"http://www.youtube.com/v/3eLKrECd4x8\">\
</embed></object></body></html>";
view_mes->setHtml(text_html);
setCentralWidget(view_mes);
view_mes->show();
}
Viewer::~Viewer()
{
}
пример же с setUrl() отличается всего лишь парой строк, вместо:
QString text_html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\
<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\
<title>iframe</title><style type=\"text/css\">HTML, BODY { background:transparent; padding:0; margin:0; border:0; overflow:hidden; }</style>\
</head><body><object style=\"height: 344px; width: 425px;\"><param value=\"http://www.youtube.com/v/3eLKrECd4x8\" name=\"movie\" />\
<param value=\"true\" name=\"allowFullScreen\" /><param value=\"always\" name=\"allowScriptAccess\" />\
<embed height=\"344\" width=\"425\" allowfullscreen=\"true\" type=\"application/x-shockwave-flash\" src=\"http://www.youtube.com/v/3eLKrECd4x8\">\
</embed></object></body></html>";
view_mes->setHtml(text_html);
вставить:
view_mes->setUrl(QUrl("embed.html"));
где, embed.html содержит тот же html код (единственное изменение - убраны переводы строк)
Вот собственно и все.
P.P.S:
в .pro файле обязательно :
QT += webkit
QT += gui
QT += core
Если есть прокси - надо будет еще и его прикрутить к коду, если надо - напишу как.