Qt应用程序嵌入浏览器的常用方法
1.使用QAxObject嵌入微软ActiveX软件
使用QAxObject需要包含Qt模块:
QT +=axcontainer;
注:
1.此方式只针对微软的组件才有效,不可以用来加载第三方的应用程序;
2.获取该组件的相关的API接口文档可以采用以下方式:
QAxObject *pAxobject = new QAxObject(this);
QString strApiDoc = pAxobject->generateDocumentation();
2.使用QWebView加载网页
使用QWebView需要包含Qt模块:
QT += webkits;
需要包含的头文件:
#include <QWebView>
#include <QUrl>
加载web网页:
QWebView *pWebView = new QWebView(this);
pWebView->Load(QUrl::fromUserInput("http://www.baidu.com"));
pWebView->Show();
注:
1.此方式当时在Qt5.6版本和VS编译器版本MSVC 2013_64中测试有效;意味着在一些更高的Qt版本中可能有其它方式替换了该模块。
2.此方式加载的网页在第一次启动时会很缓慢,考虑用户体验等情况,该方式不能作为首选。
3.QWebEngineView加载网页
4.QDesktopServices启动默认浏览器
QDesktopServices::openUrl(QUrl::fromUserInput("http://www.baidu.com"));
注:
1.此方式只能启动Windows系统下设定的默认浏览器,并不能将该网页嵌入到Qt程序中。
2.加载网页的速度快于Qt自己封装的网页加载模块。
5.采用windows的API来启动一个程序
ShellExecute(handle,'open', 'http://www.neu.edu.cn', nil, nil, SW_SHOWNORMAL); //打开一个网页
ShellExecute(Handle,'open','Explorer.exe',PChar(FOpenFolderName),nil,1) ; //打开一个文件或程序handle: 指定显示位置的父窗口operation: 打开方式,参数设为nil 时默认为open , 表示打开由filename 指定的 程序 或者 文件 和文件夹print 表示打印由filename 指定的文件explore 浏览由filename 指定的文件夹filename: 指定要操作的 可执行文件名 和 普通文件 和 文件夹 // 为文件或文件夹必须要有完整的路径Dir: 当filename 为可执行文件时,指定要操作的路径prameter: 若filename 为可执行文件 则 指定其命令参数,若无则为 nilshowcmd: 1 表示以最大话或最小化 方式显示
6.采用QProcess 来嵌入外部应用程序
==注:==如果采用此方法嵌入的外部程序,无法处理键盘的输入或鼠标操作等事件,可以采用以下方法来解决:
#include<windows.h>
#include<QWindow>
void AttachWinThreadKeyMouseEvent(WId remoteHandle)
{DWORD curThreadId = GetCurrentThreadId(); //获取当前线程的IDDWORD remoteThreadId = GetWindowThreadProcessId((HWND)remoteThreadId,NULL); //获取要加入到当前线程的外部线程IDif (curThreadId != remoteThreadId){if (!AttachThreadInput(remoteThreadId, curThreadId, true)){qErrnoWarning("AttachThreadInput:Error");}}
}
7.miniblink加载网页
…
Qt应用程序嵌入浏览器的常用方法相关推荐
- Linux下 Qt界面程序嵌入另一个Qt界面程序_Qt应用嵌入外部进程窗口
项目工程的实现,想要使用多个程序进行实现,在里面存在一定的调用的过程:调查的情况如下 Qt界面程序嵌入另一个Qt界面程序[Linux] Qt界面程序嵌入另一个Qt界面程序[Linux]_ptc321的 ...
- ActiveX控件制作与发布,如何将您的C++程序嵌入到浏览器中
本文演示如何将Qt应用程序打包嵌入IE浏览器并发布. 1. 例子Qt程序: 新建项目,选择Qt Library类型,类名为ClassDemo. 新建QtGui类(继承QWidge)类名ClassGui ...
- Qt嵌入浏览器开发——下载编译
首先明确一下动机:为什么要用Qt自己实现一个浏览器? 简而言之,就是希望实现一个介于B/S和C/S之间的混合架构,以适应一些前端展示信息需要频繁更新的生产系统.这种混合架构的优势在于: 相较于C/S架 ...
- java内嵌html5浏览器_在java应用程序中嵌入浏览器
方式一:用jdic开源组件,这种方式有个缺点,不支持firefox,如果把默认浏览器设为firefox就会出错 具体代码如下: import java.awt.BorderLayout; import ...
- cocos2d 嵌入网页_在 cocos2d-x 中嵌入浏览器
在 cocos2d-x 中嵌入浏览器 次阅读 Embeds a browser in cocos2d-x 在游戏中嵌入网页是很常见的需求,cocos2d-x 引擎官方并没有提供这个功能. 我在网上转了 ...
- Qt应用程序主窗口框架
Qt 应用程序主窗口框架 1. Qt资源系统.菜单栏和工具栏 1.1 使用资源 1.2 编写代码方式添加菜单 1.3 菜单栏 1.4 工具栏 2. 中心部件 3. Dock部件 4. 状态栏 5. 例 ...
- java gui 嵌入浏览器_DJNativeSwing-SWT组件-Java GUI中内嵌浏览器
Java项目中经常需要在GUI程序中嵌入浏览器,而Swing自带的组件对CSS.JS的支持不是很好,网上也有很多组件,参考 但是由于对各个平台的支持不是很好,笔者是在Mac系统下进行开发,很多组件只支 ...
- Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法
Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...
- 关于C#开发山寨操作系统,程序语言,浏览器,IDE,Office,Photoshop等大型程序的可行性歪论及意义...
首先,起这么个大标题不是为了眼球,也决非本人自大,本人对技术是很一般的也就是个普通人.不过因为受一些言论,贴子,新闻等综合思考而产生. 有些人认为C#这不行那不行,只能做做"企业管理&quo ...
- 关于Qt Designer程序/UI文件打开未响应的解决方法
关于Qt Designer程序/UI文件打开未响应的解决方法 参考文章: (1)关于Qt Designer程序/UI文件打开未响应的解决方法 (2)https://www.cnblogs.com/ys ...
最新文章
- java集合框架综述
- ActiveX控件制作与发布,如何将您的C++程序嵌入到浏览器中
- Spring MVC应用程序中的Thymeleaf模板布局,无扩展
- .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] (转载)
- php面向对象初始化一次,php单例模式实现(对象只被创建一次)
- Java是传值还是传引用
- 后RCNN时代的物体检测及实例分割进展
- 学习笔记(01):2019软考网络工程师--基础知识视频教程-数据通信基础(一)
- k8s中安装traefix并配置dashboard访问权限
- nas 和 远程文件夹同步_我应该如何使用Qsync来同步我计算机和NAS上的档案?
- namecheap mx记录配置邮箱
- 链新:探索NFT中国化路径,与实体经济相结合
- LSL-- Types
- mysql查询结果赋予变量_MySQL设置会话变量:把查询结果赋值给变量
- 关于arduino驱动SH1106 OLED屏幕使用U8g2库显示案例
- 【微信小程序】注册一个微信小程序
- srand和rand详细讲解
- 我在网易云音乐里看到的那些关于考研的故事
- [绍棠_Swift] SwiftyJSON的使用详解(附样例,用于JSON数据处理)
- AD936x 系列快速入口