当前位置:编程学习 > wap >>

在QML的Webview中如何获取底层C++的对象

各位大虾,我们的程序在QML中嵌入了Webview,QML代码如下


import QtQuick 1.0
import QtWebKit 1.0
//import "./subcontents"

Rectangle {
    width: 800
    height: 480

    WebView {
    preferredWidth: 800
    preferredHeight: 480

        }
}



在QT下使用webview,把C++ object对象传给javascipt上下文可以这样用:


Html5ApplicationViewerPrivate::Html5ApplicationViewerPrivate(QWidget *parent)
    : QGraphicsView(parent)
{
    //...
    m_webView = new QGraphicsWebView;
    m_pJSC = new JSCAdapter();
    connect(m_webView->page()->mainFrame(),
            SIGNAL(javaScriptWindowObjectCleared()), SLOT(addToJavaScript()));
}

void Html5ApplicationViewerPrivate::addToJavaScript()
{
    if(NULL!=m_pJSC)
    {
        m_webView->page()->mainFrame()->addToJavaScriptWindowObject(QString("jsc"), (QObject*)m_pJSC);
    }
}

 
这样在webview解析的javascript中就可以直接使用C++的对象m_pJSC了

在QML的webview中怎样实现类似QT的把C++ object对象传给javascipt上下文的方法。
QML的webview无法调用m_webView->page()->mainFrame()->addToJavaScriptWindowObject这样的方法。

 

--------------------编程问答-------------------- 自己顶,有没有大虾能指点下啊,跪谢!!! --------------------编程问答-------------------- 第一个问题 使用QML引用C++对象应该可以解决.你可以看些这篇教程:
    http://blog.csdn.net/liuhongwei123888/article/details/6056338
第二个问题 我没有用过QWebkit 不太懂.不过qml可以通过发信号来执行C++的函数.
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,