zoukankan      html  css  js  c++  java
  • Qt WebView改造成 QML App

    这是去年的一个项目,虽然研究出来了,解了一时之需,但随后束之高阁。当时Qt的版本是4.8。现在整理如下:

    把QT HTML5 APP改造成 QML App 方案

    新建一个QML自定义控件,该控件包含QT Webview, 然后由QT WebWiew 的负责Javasript和C++的交互。

    新建一个QML自定义控件

    import QtQuick 1.0

    import MyWebView 1.0

    Rectangle {

    800

    height: 480

    MyWebView{

    }

    }

    MyWebView.h

    #ifndef MYWEBVIEW_H

    #define MYWEBVIEW_H

     

    #include <QtDeclarative/QDeclarativeExtensionPlugin>

    #include <QtDeclarative/qdeclarative.h>

    #include <QtGui/QGraphicsProxyWidget>

    #include <QtGui/QPushButton>

    #include <QDebug>

    #include <QtWebKit/QWebView>

    #include <QtWebKit/QWebFrame>

     

     

    class MyWebView : public QGraphicsProxyWidget

    {

    Q_OBJECT

    public:

    explicit MyWebView(QGraphicsProxyWidget *parent = 0);

    ~MyWebView();

     

    signals:

     

    public slots:

     

    private slots:

    void addToJavaScript();

     

    private:

    QWebView* m_pWebView;

     

    Adapter* m_pAdapter;

     

    bool event(QEvent*);

     

    };

    #endif // MYWEBVIEW_H

    注册用户控件

    #ifndef VIEW_H

    #define VIEW_H

     

     

    #include <QtCore/qglobal.h>

     

    #if defined(VIEW_LIBRARY)

    # define VIEWSHARED_EXPORT Q_DECL_EXPORT

    #else

    # define VIEWSHARED_EXPORT Q_DECL_IMPORT

    #endif

     

     

     

    int VIEWSHARED_EXPORT RegisterView();

     

    #endif // VIEW_H

     

     

    int RegisterView()

    {

    int iType = qmlRegisterType<MyWebView>("MyWebView", 1, 0, "MyWebView");

    qDebug ("qmlRegisterType = %d",iType);

    return iType;

    }

  • 相关阅读:
    Android简介(8H)思维导图
    Android章节练习题及答案
    付费方式选择——选项菜单的创建和使用
    Android——选项菜单的实现
    思维导图——四级词汇2
    jquery:为动态加载的元素绑定事件
    tcp/ip协议详解
    Atom实用插件
    如何让textarea不可拖拽
    移动端网站中手机号唤起拨号界面
  • 原文地址:https://www.cnblogs.com/astate/p/3256261.html
Copyright © 2011-2022 走看看