工程名 : WebEngine01

1、WebEngine01.pro

#-------------------------------------------------
#
# Project created by QtCreator 2016-11-08T08:40:05
#
#------------------------------------------------- QT += core gui \
webenginewidgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = WebEngine01
TEMPLATE = app SOURCES += main.cpp\
mainwindow.cpp \
TformWebEngine01.cpp \
TzcWebEngine.cpp HEADERS += mainwindow.h \
TformWebEngine01.h \
TzcWebEngine.h FORMS += mainwindow.ui \
TformWebEngine01.ui

2、main.cpp

#include "mainwindow.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show(); return a.exec();
}

3、TzcWebEngine.h / TzcWebEngine.cpp 自定义的 继承QWebEngineView的子类

  3.1、TzcWebEngine.h

#ifndef TZCWEBENGINE_H
#define TZCWEBENGINE_H #include <QtWebEngineWidgets/QtWebEngineWidgets> class TzcWebEngine : public QWebEngineView
{
Q_OBJECT public:
explicit TzcWebEngine(QWidget* parent = Q_NULLPTR); public:
void FenXi();
}; #endif // TZCWEBENGINE_H

  3.2、TzcWebEngine.cpp

#include "TzcWebEngine.h"

#include <QDebug>

TzcWebEngine::TzcWebEngine(QWidget* parent):
QWebEngineView(parent)
{
} void TzcWebEngine::FenXi()
{
qDebug() << this->url().url();
//this->page()->url()
//this->page()->runJavaScript(); // http://blog.csdn.net/li235456789/article/details/50959384
// const QString script = QLatin1String(
// "var evObj = document.createEvent('MouseEvents');"
// "evObj.initEvent('click', true, true);"
// "this.dispatchEvent(evObj);");
//element.evaluateJavaScript(script); const QString script = QLatin1String(
"var evObj = document.getElementById('loginButton');"
"evObj.initEvent('click', true, true);"
"this.dispatchEvent(evObj);");
this->page()->runJavaScript(script); // http://bbs.csdn.net/topics/370070779
}

4、TformWebEngine01.h / TformWebEngine01.cpp 承载(显示) WebEngineView的 窗口(QWidget)。

  暂时 好像没有没有使用这个窗口(QWidget),要用的话 用起来也很简单

  4.1、TformWebEngine01.h

#ifndef TFORMWEBENGINE01_H
#define TFORMWEBENGINE01_H #include <QWidget> namespace Ui {
class TformWebEngine01;
} class TformWebEngine01 : public QWidget
{
Q_OBJECT public:
explicit TformWebEngine01(QWidget *parent = );
~TformWebEngine01(); private:
Ui::TformWebEngine01 *ui;
}; #endif // TFORMWEBENGINE01_H

  4.2、TformWebEngine01.cpp

#include "TformWebEngine01.h"
#include "ui_TformWebEngine01.h" TformWebEngine01::TformWebEngine01(QWidget *parent) :
QWidget(parent),
ui(new Ui::TformWebEngine01)
{
ui->setupUi(this);
} TformWebEngine01::~TformWebEngine01()
{
delete ui;
}

5、MainWindow.h / MainWindow.cpp 主界面

  5.1、MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QCloseEvent>
#include "TzcWebEngine.h" namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = );
~MainWindow(); private:
Ui::MainWindow *ui; public:
TzcWebEngine *Fpwe; private slots:
void on_pbtnShowFrmWE_clicked();
void on_pbtnFenXi_clicked(); protected:
void closeEvent(QCloseEvent *_event);
}; #endif // MAINWINDOW_H

  5.2、MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); Fpwe = NULL;
//this->setAttribute(Qt::WA_DeleteOnClose);
} MainWindow::~MainWindow()
{
//qDebug() << "~MainWindow()";
Fpwe = NULL;
delete ui;
} //函数主体部分
void MainWindow::closeEvent(QCloseEvent *_event)//此函数在QWidget关闭时执行
{
//event->ignore();
//qDebug() << "closeEvent";
if (Fpwe != NULL)
{
Fpwe->close();
delete Fpwe;
Fpwe = NULL;
}
_event->accept();
} void MainWindow::on_pbtnShowFrmWE_clicked()
{
if (Fpwe == NULL)
{
Fpwe = new TzcWebEngine();
//Fpwe->load(QUrl::fromUserInput("http://www.baidu.com"));
Fpwe->load(QUrl::fromUserInput("http://www.caiak998.com/"));
int iTitleBarHeight = style()->pixelMetric(QStyle::PM_TitleBarHeight);
int iDefaultFrameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); Fpwe->setGeometry(iDefaultFrameWidth, iTitleBarHeight + iDefaultFrameWidth, , ); // Fpwe->showFullScreen();
// QRect rt = Fpwe->geometry();
// qDebug() << rt.left() << " , " << rt.top() << " , " << rt.width() << " , " << rt.height();
// Fpwe->setAttribute(Qt::WA_DeleteOnClose);
}
Fpwe->show();
} void MainWindow::on_pbtnFenXi_clicked()
{
if (Fpwe == NULL)
return;
Fpwe->FenXi();
}

6、界面

  6.1、主界面  mainwindow.ui

    6.1.1、图片

    6.1.2、XML代码

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>564</width>
<height>325</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QPushButton" name="pbtnShowFrmWE">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>131</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Show FrmWebEngine01</string>
</property>
</widget>
<widget class="QPushButton" name="pbtnFenXi">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<width>131</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Fen Xi</string>
</property>
</widget>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

  6.2、承载(显示) WebEngineView的 窗口

    TformWebEngine01.ui

    6.2.1、图片

    6.2.2、XML代码

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TformWebEngine01</class>
<widget class="QWidget" name="TformWebEngine01">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>553</width>
<height>361</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

7、

8、

QWebEngineView_简单例子_01的更多相关文章

  1. Hibernate4.2.4入门(一)——环境搭建和简单例子

    一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...

  2. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  3. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  4. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  5. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

  6. java socket编程开发简单例子 与 nio非阻塞通道

    基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...

  7. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  8. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  9. jsonp的简单例子

    jsonp的简单例子 index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

随机推荐

  1. 微信小程序 --- 事件绑定

    事件类别: tap:点击事件: longtap:长按事件: touchstart:触摸开始: touchend:触摸结束: touchcansce:取消触摸: 事件绑定: bind绑定: catch绑 ...

  2. pyhton 函数参数,递归函数,高阶函数(一点点笔记)

    '''def test(x,y): print(x) print(y)test(2,y=3)def test(*args):#参数可以是不确定的多个数,接受N个位置参数,转换成元组形式 print(a ...

  3. php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql

    共享一份学习php最全基础语法知识的笔记 原文链接:http://www.cnblogs.com/oscn/p/3607757.html:略有修改   http://www.cnblogs.com/l ...

  4. RAC 性能分析 - 'log file sync' 等待事件

    简介 本文主要讨论 RAC 数据库中的'log file sync' 等待事件.RAC 数据库中的'log file sync' 等待事件要比单机数据库中的'log file sync' 等待事件复杂 ...

  5. 实现IT服务弹性伸缩的利器

    随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战.比如电商.在线教育等企业经常推出一些秒杀.抢红包活动,在特定时间段对资源的 ...

  6. Google I/O 2014 - Keynote for Android

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/34809467 Google I/O 201 ...

  7. python 面向对象高级应用(三)

    目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...

  8. Mac OS X 在 Finder 里快速创建文本文件

    Automator 新建一个 Application   选取:应用程序 实用工具→运行AppleScript 添加一个动作 "Run AppleScript"代码如下: on r ...

  9. HDU1757:A Simple Math Problem(矩阵快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=1757 Problem Description Lele now is thinking about a simp ...

  10. javascript-复制

    cefCopy:function(str){ var t=this; if(!str || str=="暂无激活码") { $.notice("暂无激活码", ...