Qt和JavaScript相互调用
来源:互联网 发布:便签的元数据已损坏 编辑:程序博客网 时间:2024/06/05 01:19
// mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QWebView>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui;public slots:void jsInvokeQt(const QString &dir); void addObjectToJs();void qtInvokeJs();};#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QFileDialog>#include <QWebFrame>#include <QDesktopServices>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);QString testPath = qApp->applicationDirPath() + "/test.html";ui->webView->load(QUrl::fromLocalFile(testPath));//支持jsQWebSettings *pWebSettings = ui->webView->page()->settings(); pWebSettings->setAttribute(QWebSettings::JavascriptEnabled,true);connect(ui->webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this,SLOT(addObjectToJs()));connect(ui->btnToJs, SIGNAL(clicked()), this, SLOT(qtInvokeJs()));}MainWindow::~MainWindow(){ QWebSettings::globalSettings()->clearMemoryCaches(); delete ui;}//将对象指针添加到JavaScriptvoid MainWindow::addObjectToJs(){ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("MainWindow", this);}// Qt调用JavaScript里qtInvokeJs函数void MainWindow::qtInvokeJs(){ui->webView->page()->mainFrame()->evaluateJavaScript("qtInvokeJs()");}//js调用Qt的函数必须为槽函数void MainWindow::jsInvokeQt(const QString &dir){QFileInfo fi = QFileInfo(dir);QString filePath;filePath = fi.absolutePath();QDesktopServices::openUrl(QUrl(filePath, QUrl::TolerantMode));}
//main.cpp
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
// test.html
<html><head><script type="text/javascript">function qtInvokeJs(){ alert("Qt invoke Js!")} function jsInvokeQt(){var path = "d:/"; MainWindow.jsInvokeQt(path);} </script></head><body> <input type="button" onclick="jsInvokeQt()" value="js invoke qt" /> </body></html>
阅读全文
0 0
- Qt和JavaScript相互调用
- QT和网页中的JavaScript函数相互调用的实现
- javascript和C#相互调用
- JS和javaScript相互调用
- Android和javascript相互调用
- C++和JavaScript脚本的相互调用
- Javascript和AS相互交互调用
- JavaScript 和jsp 值相互调用
- JavaScript和Android代码相互调用
- IOS Object和javaScript相互调用
- Javascript和BHO的相互调用简介
- Android Java和JavaScript代码相互调用
- Android和JavaScript相互调用初学
- Android:java和javascript相互调用
- Android:java和javascript相互调用
- Android:java和javascript相互调用
- Java和JavaScript的相互调用
- Android 中 Java 和 JavaScript 相互调用
- Broadcast相关总结
- OkHttp的GET请求的实现方式
- as查看SHA1和MD5
- HDU
- XListView的一些内容
- Qt和JavaScript相互调用
- Centos 查看硬盘空间
- Java创建线程的三种方式及其对比
- 常量和引用
- 如何在ubuntu中安装cs6
- [USACO16DEC]Team Building团队建设
- IE,firefox内存溢出原因与解决方法
- 取反运算
- java文件传输基础:DataOutputStream类和DataInputStream类