};
注意:在将qt对象暴露给js时,要在js中执行qt对象之前暴露,否则js不认识qt的对象名称.所以通常通过链接QWedView的信号 javaScriptWindowObjectCleared,在槽中进行暴露。
### 完整代码
#### mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
// 设置QT对象暴露给JS的槽函数
void addMainWindowToHtml();
// 在js中调用的无参成员函数
void JsCallNoParam();
// 在js中调用的有参成员函数
void JsCallWithParam(int num,QString str);
// 在js中调用的有返回值的成员函数
QString JsCallWithReturn();
private slots:
// html文件加载完成槽函数
void onPageLoadFinished(bool);
// QT调用js中的函数(无参、有参、有返回值的按钮槽函数)
void on\_btn\_noparam\_clicked();
void on\_btn\_withparam\_clicked();
void on\_btn\_withreturn\_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#### mainwindow.cpp
#include “mainwindow.h”
#include “ui_mainwindow.h”
#include
#include
#include <QtWebKit/QWebView>
#include <QtWebKit/QWebPage>
#include <QtWebKit/QWebPage>
#include <QtWebKit/QWebFrame>
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
// 加载资源中的 html
// ui->webView->load(QUrl("qrc:/html.html"));
// 加载本地html方式
ui->webView->load(QUrl::fromLocalFile("/home/guoqr/html.html"));
//页面加载完