这是去年的一个项目,虽然研究出来了,解了一时之需,但随后束之高阁。当时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 {

width: 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;

}

Qt WebView改造成 QML App的更多相关文章

  1. Declarative Widgets is a QML plugin that adds Qt Widgets support to QML

     05.04.2018  Nathan Collins  8 comments FacebookTwitterGoogle+LinkedInEmail Declarative Widgets is a ...

  2. Android使用WebView打包网页成app

    原生app的开发成本和网页相比相对较高,所以越来越多的app使用网页来作为界面,甚至完全将一个网站封装成app,可以提高开发速度,还能基本实现跨平台. 下面以Android为例,在ubuntu-14. ...

  3. Using Qt to build an Omi App for iOS (and Android)

    JUNE 6, 2014 / HHARTZ Working on projects where the technology is pre-determined, it's often difficu ...

  4. android通过webview调起支付宝app支付

    webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这样的监听事件之后,当请求url的时候就不会打开手机自带 ...

  5. Qt Quick编程(1)——QML的核心部分ECMAScript

    说道QML,不得不先说一下ECMAScript: ECMAScript语言的标准是由Netscape.Sun.微软.Borland等公司基于JavaScript和JScript锤炼.定义出来的. EC ...

  6. WebView的使用--Hybrid App

    App页面是运行在WebView中的,一个App页面对应一个WebView,本例实现两个WebView之间的跳转. 实现过程(用到了MUI框架): 1.页面标识+跳转按钮(index.html.mai ...

  7. Qt界面UI之QML初见(学习笔记四)

    拖了大半年,今天终于有更新了...我自己都不好意思,最近太忙了! 今天讲一下:QML语法 一 概述 QML是一种专门用于构建用户界面的编程语言,它允许用户构建高性能,具有流畅特效的可视化应用程序,QM ...

  8. Qt在线讲座之QML脚本书写规范

    时间:2016年3月1日晚7:30 在线讲座:http://qtdream.com主页处就可以收看直播(详见主页提示) 參与对象:对Qt跨平台开发框架感兴趣的朋友们.当然了,假设你是大牛.也可以旁听一 ...

  9. Android——WebView方式开发web App

    昨天接到个酬劳丰厚的任务.把java新生系统做成webApp,想想蛮简单的.所以当时就装作非常为难的样子答应了. 所谓Web App,用曾经我那个老PM的话来说.就是在壳里面套上页面.这里的壳相当于浏 ...

随机推荐

  1. ajax局部刷新一个div下的jsp

    用AJAX刷新一个DIV中的jsp内容 <script type="text/javascript"> var xmlhttp; function startrefre ...

  2. Note.js的stream用法一例

      Note.js,用stream读取文件的内容,注意decoder的用法 const fs = require('fs');   var rr = fs.createReadStream('data ...

  3. 深夜闲聊节目:华为 Mate7的指纹识别安全么?

    许久没有写过不论什么东西,近期非常忙并且还要准备找工作之类的,唉... ....今天的文章也不说技术,仅仅是闲聊. 一.手机指纹识别一揽 打开非常多站点.论坛的科技栏目,充斥着各种手机讯息!仿佛手机已 ...

  4. Oracle体系结构二(学习笔记)

  5. STM32F429I-DISCO 和GPS的亲热接触

    第27章 GPS LCD显示教程 本期教程为大家解说GPS Global Positioning System(全球定位系统)的使用,.GPS是由美国国防部研制建立的一种具有全方位.全天候.全时段.高 ...

  6. break的使用方法

    private static void test() {  for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { Syst ...

  7. cmd获取批处理文件所在路径

    在批处理开头加入cd /d %~dp0 一行代码就真真实实地做到“编写一次,到处运行”.%0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径.例如,你的bat文件在e: ...

  8. 重置outlook 2010

    1.进入 D:\program files\mirosoft office\ioffice14 2.outlook /importprf .\.prf 3.账号问题可以-->控制面板--> ...

  9. 解决 在POM配置Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”

    eclipse在其POM文件的一处提示出错如下: Plugin execution not covered by lifecycle configuration: org.apache.maven.p ...

  10. linux sar命令详细说明相关参数

    详细说明linux的sar命令 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括: ...