QT使用插件QAxWidget来展示web页面
2017-09-10 17:46
393 查看
要求:用qt版开发一个桌面程序,该程序有一个界面,用来显示一个采用silverlight开发的web页面。
分析:在qt中实现web显示,根据qt的版本和对应编译器的版本,有如下选择:
(1)5.6以下的版本,基于QtWebkit
(2)5.6以上的MSVC版本,移除了QtWebkit 模块,可采用基于 Chromium 的浏览器引擎 Qt WebEngine
(3)5.6以上的mingw 版本,没有Qt WebEngine ,只能采用QAxWidget 控件
问题:用QtWebkit或Qt WebEngine,都不支持silverlight ,而QAxWidget 可以。
所以,不得不采用QAxWidget控件实现。
下面就使用QAxWidget来开发一个简单的web browser。该程序只有一个对话框,上面是一个地址框,下面是QAxWidget控件,在地址框中输入地址,单击Enter键,就显示该网址的内容。
1 在qtcreator中新建一个基于Dialog的程序:WebBrowser。
2 在.pro文件中加入axcontainer
3 dialog.h
4 dialog.cpp
5 运行结果
分析:在qt中实现web显示,根据qt的版本和对应编译器的版本,有如下选择:
(1)5.6以下的版本,基于QtWebkit
(2)5.6以上的MSVC版本,移除了QtWebkit 模块,可采用基于 Chromium 的浏览器引擎 Qt WebEngine
(3)5.6以上的mingw 版本,没有Qt WebEngine ,只能采用QAxWidget 控件
问题:用QtWebkit或Qt WebEngine,都不支持silverlight ,而QAxWidget 可以。
所以,不得不采用QAxWidget控件实现。
下面就使用QAxWidget来开发一个简单的web browser。该程序只有一个对话框,上面是一个地址框,下面是QAxWidget控件,在地址框中输入地址,单击Enter键,就显示该网址的内容。
1 在qtcreator中新建一个基于Dialog的程序:WebBrowser。
2 在.pro文件中加入axcontainer
QT += axcontainer
3 dialog.h
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include <QLineEdit> #include <ActiveQt/QAxWidget> namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = 0); ~Dialog(); private slots: void loadNavigate(); private: Ui::Dialog *ui; QLineEdit *lineUrl; QAxWidget* webWidget; }; #endif // DIALOG_H
4 dialog.cpp
#include "dialog.h" #include "ui_dialog.h" #include <QVBoxLayout> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); lineUrl = new QLineEdit; lineUrl->setText("www.baidu.com"); connect(lineUrl,SIGNAL(returnPressed()),this,SLOT(loadNavigate())); webWidget = new QAxWidget; //设置ActiveX控件为IEMicrosoft Web Browser //设置ActiveX控件的id,最有效的方式就是使用UUID //此处的{8856F961-340A-11D0-A96B-00C04FD705A2}就是Microsoft Web Browser控件的UUID webWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}")); webWidget->setObjectName(QString::fromUtf8("webWidget"));//设置控件的名称 webWidget->setFocusPolicy(Qt::StrongFocus);//设置控件接收键盘焦点的方式:鼠标单击、Tab键 webWidget->setProperty("DisplayAlerts",false); //不显示任何警告信息。 webWidget->setProperty("DisplayScrollBars",true); // 显示滚动条 QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(lineUrl); mainLayout->addWidget(webWidget); setLayout(mainLayout); setWindowState(Qt::WindowMaximized);//最大化 } Dialog::~Dialog() { delete ui; } void Dialog::loadNavigate() { QString sUrl = lineUrl->text().trimmed(); webWidget->dynamicCall("Navigate(const QString&)",sUrl); }
5 运行结果
相关文章推荐
- QT使用插件QAxWidget来展示web页面
- QT使用插件QAxWidget来展示web页面
- 使用DundasWebChart展示图表时,出现异常或者跳转到错误页面
- 使用Python的Tornado框架实现一个Web端图书展示页面
- 关于上传图片插件webuploader的使用(同一个页面存在多个实例):
- webpack插件:使用HtmlWebpackPlugin在页面中使用EJS语法引用模板文件(二)
- 【Android】Web开发之使用WebView控件展示Web页面
- webpack---使用插件,常见webpack的plugin,构建vue,react单页面/多页面工程APP必备插件
- QT使用插件QAxWidget
- 使用jQuery制作Web页面遮罩层插件的实例教程
- QT使用插件QAxWidget
- 使用Python的Tornado框架实现一个Web端图书展示页面
- Web页面使用VLC播放插件
- FCKeditor 一个开源的web页面文本编辑工具,在vs 2005中的使用方法
- 第五章:操纵 DOM使用 JavaScript 即时更新 Web 页面
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错
- Spring 架构下使用jstl在页面上展示map或者list(包括类型嵌套的数据)
- 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错
- [语音合成技术第一讲]web 页面中使用语音合成技术
- 掌握 Ajax:第 5 部分: 操纵 DOM使用 JavaScript 即时更新 Web 页面