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 { 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; } |
最新文章
- 分布式搜索elasticsearch配置文件详解
- Ubuntu杂记——双系统重装Win7后找不到Ubuntu的解决办法
- ViewPager+PagerTabStrip实现页面的切换
- NetworkComms V3 之支持TCP连接和UDP连接
- C++——友元、异常和其他
- JADE提升篇
- Yii目录树扩展ztree,ctree等
- 标准I/O库之标准I/O的效率
- 20 个强大的 Sublime Text 插件
- mipi 调试经验
- ECOS高可用集群
- 【LCT】一步步地解释Link-cut Tree
- Java 执行CMD/DOS
- js 选择图片生成base64数据
- SpringMVC实现用户登录实例
- hive启用压缩
- Echarts饼图显示模板
- 单页面SPA应用路由原理 history hash
- Java编程的逻辑 (54) - 剖析Collections - 设计模式
- matlab中的knn函数
热门文章
- Cesium随笔(1)部署自己的项目 【转】
- BeautifulSoup4----利用find_all和get方法来获取信息
- 解决报错";Your security system have blocked an application with expired or not yet valid certificate from running";
- 检测设备平台,操作系统,方向 Javascript 库:Device.js
- URAL 1698
- 理解进程调度时机跟踪分析进程调度与进程切换的过程(Linux)
- 代码生成器的关键代码(读取PDM文件)
- 使用js对select动态添加和删除OPTION
- PHP MySQL -处理语句
- Spring boot 与quart集成并在Job中注入服务