头文件:
#ifndef WEBKIT_VLC_H
#define WEBKIT_VLC_H
#include
#include
#include "obj_openvlc.h"
namespace Ui {
class Webkit_VLC;
}
class Webkit_VLC : public QWebView
{
Q_OBJECT
public:
explicit Webkit_VLC(QWidget *parent = 0);
~Webkit_VLC();
private slots:
void addJavaScriptObject();
private:
Ui::Webkit_VLC *ui;
Obj_OpenVlc *obj_openVlc; //将暴露给javascript的对象
};
#endif // WEBKIT_VLC_H
源文件:
#include "webkit_vlc.h"
#include "ui_webkit_vlc.h"
#include
#include
#include
Webkit_VLC::Webkit_VLC(QWidget *parent) :
QWebView(parent),
ui(new Ui::Webkit_VLC)
{
setWindowFlags( Qt::FramelessWindowHint);
ui->setupUi(this);
resize(1280,720);
obj_openVlc = new Obj_OpenVlc(this);
settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
settings()->setAttribute(QWebSettings::PluginsEnabled,true);
connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared ()),
this, SLOT(addJavaScriptObject()));
load(QUrl("file:///home/nxx/Webkit_VLC/view.html"));
}
Webkit_VLC::~Webkit_VLC()
{
delete ui;
}
void Webkit_VLC::addJavaScriptObject(){
qDebug()<<"addJavaScriptObject";
//javascript可以通过对象名obj_open_vlc访问obj_openVlc对象。
page()->mainFrame()->addToJavaScriptWindowObject("obj_open_vlc",this->obj_openVlc);
}
编译会出现如图提示