qt调用js,js调用qt

<html>

<script language="JavaScript">

    function qtcalljs()
    {

        alert("sdfsd");
    }

    function jscallqt()
    {
        mainWindow.dosome();
    }

</script>

<body>

<button onclick="jscallqt()" style=="height:20px;width:100px"/>

</body>
</html>

qt.h:

#ifndef QTTT_H
#define QTTT_H

#include <QtGui/QMainWindow>
#include <QWebKitPlatformPlugin>
#include <QWebFrame>
#include <QMessageBox>
#include <QObject>
#include "ui_qttt.h"

class qttt : public QMainWindow
{
    Q_OBJECT

public:
    qttt(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~qttt();

private:
    Ui::qtttClass ui;

private slots:
    void pop();
    void addMyObjectToJavascript();
public:
    Q_INVOKABLE void dosome();
};

#endif // QTTT_H

qt.cpp

#include "qttt.h"

qttt::qttt(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);

    ui.webView->load(QUrl("test.html"));
    connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(pop()));
    connect(ui.webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addMyObjectToJavascript()));

}

qttt::~qttt()
{

}

void qttt::pop()
{

    ui.webView->page()->mainFrame()->evaluateJavaScript("qtcalljs();");
}

void qttt::addMyObjectToJavascript()
{
    ui.webView->page()->mainFrame()->addToJavaScriptWindowObject("mainWindow", this);
}

void qttt::dosome()
{
    QMessageBox::aboutQt(this,"sdfsa");
}
时间: 2024-12-11 05:56:10

qt调用js,js调用qt的相关文章

qt与js互相调用

二.QT支持Js流程 QT与JavaScript互调是通过QWebFrame的两个函数来实现的:addToJavaScriptWindowObject()将QObject对象传给JS,这样JS就能调用QObject的public slots函数.QT通过evaluateJavaScript()直接调用JS中的函数.流程如下(<QT高级编程>中插图): 三.示例 使用QWebKit创建一个包含浏览器和工具按钮窗口,在该浏览器中载入包括Js的html,工具按钮调用html中的js 1.工程中引入

如何在android平台上使用js直接调用Java方法[转]

转载自:http://www.cocos.com/docs/html5/v3/reflection/zh.html #如何在android平台上使用js直接调用Java方法 在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parame

asp.net调用前台js调用后台代码分享

C#前台js调用后台代码 前台js <script type="text/javascript" language="javascript"> function Ceshi() { var a = "<%=Getstr()%>"; alert(a); } </script> <input type="button" onclick="Ceshi();" value=

webBrowser调用外部js文件和js函数(转载)

原文链接:http://fy5388.blog.163.com/blog/static/56499537201012594314130/ webBrowser调用外部js文件和js函数 '第一种方法:webbrowser动态调用html和js代码,都是动态的:代码示例: webBrowser1.Navigate("about:blank");webBrowser1.Document.OpenNew(True);webBrowser1.Document.Write("<H

【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) 在callStaticMethod方法中,我们通过传入Java的类名,方法名,方法签名,参数就可以直接调用Java的静态方法,并且可以获得Java方法的返回

【cocos2d-js官方文档】二十三、如何在IOS平台上使用js直接调用OC方法

在Cocos2d-JS v3.0 RC2中,与Android上js调用Java一样,Cocos2d-JS也提供了在iOS和Mac上js直接调用Objective-C的方法,示例代码如下: var ojb = jsb.reflection.callStaticMethod(className, methodNmae, arg1, arg2, .....); 在jsb.reflection.callStaticMethod方法中,我们通过传入OC的类名,方法名,参数就可以直接调用OC的静态方法,并且

ASP.NET后台调用前台JS函数的三种常见方法

第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun();"); 此方法只能在Onload中或者类似于onload的初始化过程中添加才有效.并且是先执行脚本函数,同时无法改变执行顺序. 第二种:使用Response.Write方法进行调用 例如,像我们经常会使用到的Response.Write("<scripttype='text/ja

java调用javascript :js引擎rhino

java调用javascript :js引擎rhino JavaJavaScriptEclipse脚本SQL 前段时间,在浏览javaeye论坛,看见有人征集如何在java中运行数学表达式.结果方案五花八门:1.jakarta commons JEXL. 2.Beanshell3.Java Math Expression Parser jep 4.parse combinator jparsec 5.jdk 6.0的 script6.利用SQL 7.自己写语法分析如果自己写语法分析,没有个200

借助动态代码生成技术在基于Webkit引擎的HTML5网页JS内调用易语言函数

作者:庄晓立(Liigo) 日期:2015年3月3日夜 原创链接:http://blog.csdn.net/liigo/article/details/44045177 版权所有,转载请注明出处:http://blog.csdn.net/liigo 前两天我协助解决了一个技术问题,在此稍作记录和总结. 具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样).如

【Qt】使用QProcess调用其它程序或脚本

大概试了一下,还是不错的,不过字符编码问题还不太好解决: 代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QProcess> #include <QTextCodec> #include <QCloseEvent> MainWindow::MainWindow(QWidget *parent)