QT QWebView/QWebEngineView使用

2023-11-17

一、 简介

       使用QT程序可以访问web页面,但在不同QT版本中使用的类和方法不同:

               1. Qt4中使用webkit模块;

               2. Qt5 ~Qt5.5使用webkitwidgets模块;

               3. Qt5.6以上版本使用webenginewidgets模块。

       所以在不同版本中添加的模块,使用的类都不相同;

二、 Qt4版本

       Qt4使用webkit模块。

       1. 创建一个Widget类的QT工程,在pro工程文件中添加 webkit network :

QT       += core gui webkit network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = web
TEMPLATE = app
 
 
SOURCES += main.cpp\
           widget.cpp
 
HEADERS  += widget.h
 
FORMS    += widget.ui

        2. 编辑widget.h文件,在Widget类中添加一个指针成员,该指针指向一个QWebView类:

#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <QtWebKit/QWebView>
 
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
 
    QWebView    *view;
 
 
private:
    Ui::Widget *ui;
};
 
#endif // WIDGET_H

     3. 修改widget.cpp,实现下面两个成员函数

#include "widget.h"
#include "ui_widget.h"
 
Widget::Widget(QWidget *parent) :
    Widget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    view = new QWebView(this);
    view->load(QUrl("http://www.baidu.com"));
    view.showMaximized();
}
 
Widget::~Widget()
{
    delete view;
    delete ui;
}

三、 Qt5 ~ Qt5.5版本

     Qt5版本之后,将QWebView、QWebFrame、QWebPage、QWebInspector等类被单独移到了webkitwidgets模块,不再在QtWebKit模块中,因此需使用webkitwidgets模块。

     和Qt4的区别仅在于pro文件中添加的模块不同和widget.h文件中包含的头文件不同。

QT       += core gui webkitwidgets network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <QtWebKitWidgets/QWebView>

四、 Qt5.6及以上版本

     Qt5.5.1是最后一个支持webkitwidgets的版本,在5.6版本以及之后的版本,Qt将webkitwidgets模块移除,并用一个新的模块webenginewidgets代替。
     1. 创建一个Widget类的QT工程,在pro工程文件中添加 webenginewidgets:


QT       += core gui webenginewidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = web
TEMPLATE = app


SOURCES += \
        main.cpp \
        widget.cpp

HEADERS += \
        widget.h

FORMS += \
        widget.ui

RESOURCES +=

     2. 编辑widget.h文件,包含QWebEngineView头文件,并在Widget类中添加一个指针成员,该指针指向一个QWebEngineView类:

#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <QWebEngineView>
 
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
 
    QWebEngineView    *view;
 
 
private:
    Ui::Widget *ui;
};
 
#endif // WIDGET_H

    3. 修改widget.cpp,实现下面两个成员函数

#include "widget.h"
#include "ui_widget.h"
 
Widget::Widget(QWidget *parent) :
    Widget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    view = new QWebEngineView(this);
    view->load(QUrl(QStringLiteral("http://www.baidu.com")));
    view.showMaximized();
}
 
Widget::~Widget()
{
    delete view;
    delete ui;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT QWebView/QWebEngineView使用 的相关文章

  • Qt:更改 Mac OS X 上的应用程序 QMenuBar 内容

    我的应用程序对多个 页面 使用 QTabWidget 其中顶级菜单根据用户所在的页面而变化 我的问题是 尝试重新创建菜单栏的内容会导致严重的显示问题 它在除 Mac OS X 之外的所有平台上按预期使用第一种和第三种样式 尚未测试第二种 但
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • 相对文件路径的区别:Qt Creator的调试模式和发布模式

    QFile file test txt if file open QIODevice ReadOnly qDebug lt lt You got me 我在用 Qt 4 8 6 与 MSVC 2010 Qt 创建者 3 1 1 Window
  • QWebEngineView 在 load() 或 page() 方法上崩溃

    我正在致力于将 Qt 5 5 QWebView 项目移植到 Qt 5 6 测试版 QWebEngine 我已经阅读了移植指南here https wiki qt io Porting from QtWebKit to QtWebEngine
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • QML 圆规

    我目前正在创建一个虚拟仪表板 我想获得针后面的进度条类型 如以下链接所示 https forum qt io topic 89307 qml circular gauge styling needle trailing colour glo
  • Qt - 添加超链接到对话框

    有没有办法在 Qt 对话框中添加可点击的超链接 IE 它应该看起来像一个超链接 蓝色文本 当您单击它时 它应该在浏览器中打开该超链接 像这样的东西 Use QLabel setOpenExternalLinks bool 并在标签上设置文本
  • 使用 qt 创建和使用共享库

    我对共享库很陌生 所以我对如何创建 使用共享库有疑问 我正在使用 Qt Creator 和 qt 5 4 2 以及 Microsoft Visual C 11 0 编译器 在我的项目中 我需要创建一个 dll 它从外部库调用函数 有 h l
  • 仅具有年/月视图的 PyQt 日历

    在 Qt Designer 中 QDateTimeEdit 具有日历视图选项 通过设置显示格式 我只能显示月 年 但是 当用户单击视图时 它会自动显示每日日历 有没有办法让它只显示月 年日历 为了形象地解释一下 Windows 日历具有与
  • 使用 CMake 时出现 Qt moc 错误

    我正在尝试编写一个 OpenCV 应用程序 使用 Qt 创建 GUI 并使用 CMake 生成 makefile 我遇到的问题是 当我尝试执行make命令 我收到错误 该文件是使用 5 2 1 中的 moc 生成的 它不能与此版本的 Qt
  • Qt:使用 QObject::connect 指定多种连接类型

    我想知道是否可以指定多种连接类型 例如 我希望我的连接类型是排队连接和唯一连接 是否可以在一份声明中具体说明这一点 QObject connect ptrSender SIGNAL ptrReceiver SLOT Queued and u
  • QSettings - ini 文件的位置在哪里?

    我在用着QSettings在 Windows 中将一些数据存储为 ini 文件 我想查看ini文件 但我不知道ini文件的位置在哪里 这是我的代码 QSettings set new QSettings QSettings IniForma
  • Qt 要包含哪些标头?

    使用 Qt 使用 C 进行编程时 我应该包含哪些内容 仅包含 2 个 include
  • 找不到 PySide SVG 图像格式?

    我正在使用 Eclipse 的 PyDev 插件与 Qt 集成 我安装了 PySide 但在使用 SVG 图像格式时遇到问题 我知道当我运行我的应用程序时 格式位于C Python27 Lib site packages PySide pl
  • 如何使用 C++ 更新 QML 文本

    我有一个小问题 有人可以告诉我如何从 C 更新 qml 文本吗 我有一个使用线程的示例 但我不想应用此方法 因为我不知道如何设置 run 函数中的参数 要完全理解我 这里是我的代码 在启动线程时的主函数中 我想放置自定义文本或具有文本的字符
  • 超越堆栈采样:C++ 分析器

    黑客的故事 日期是 2010 年 2 月 12 日 圣诞节前的日子已经过去了 作为一名 Windows 程序员 我几乎遇到了一个主要障碍 我一直在使用 AQTime 我尝试过 sleepy shiny very sleepy 就在我们说话的
  • 如何防止 QTableView 项目在双击时被清除

    使用 QAbstractTableModel 将 QTableView 设置为可编辑flag method def flags self index return Qt ItemIsEnabled Qt ItemIsSelectable Q
  • 更改 QGraphicsView 中的光标

    我正在尝试更改 a 的光标QGraphicsView而ScrollHandDrag已开启 但似乎不起作用 如果禁用 我可以更改光标ScrollHandDrag但不是在它处于活动状态时 我不知道我可能做错了什么 下面是重现该问题的代码的一部分
  • Qt 中的智能指针[重复]

    这个问题在这里已经有答案了 就像已经写过一样here http blog qt digia com 2009 08 25 count with me how many smart pointer classes does qt have Q
  • QTextEdit:仅当滚动条位于底部时自动向下滚动

    有一个 QTextEdit 显示相当多的文本 它不可编辑 假设我想在开头阅读一些内容 向上滚动 但随后添加了一个新行 并且滚动条自动转到底部 我在使用各种程序时遇到类似的问题 无论它们是用什么语言编写的 如何处理这个问题 当向文本添加新行时

随机推荐

  • 这5种必知的大数据处理框架技术,你的项目到底应该使用其中的哪几种

    大数据是收集 整理 处理大容量数据集 并从中获得见解所需的非传统战略和技术的总称 虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限 但这种计算类型的普遍性 规模 以及价值在最近几年才经历了大规模扩展 本文将介绍大数据系统一个最基
  • Hadoop学习笔记之如何运行一个MapReduce程序

    Hadoop学习笔记之如何运行一个MapReduce程序 MapReduce可以分为两个阶段来处理 一个阶段为map 另一个阶段为reduce 每个阶段都有键值对的输入和输出参数 输入输出键值对的类型由程序决定 程序同样指定了两个函数 ma
  • 笔试面试常见函数编程实现

    目录 strcpy strstr memcpy memove Strcmp atoi 最好不要用其他封装的函数 strcpy C语言标准库函数 原型声明 extern char strcpy char dest const char src
  • 使用baiduspider实现一个异步爬虫

    代码仓库 https github com Kakaluoto asnyc spider 爬虫数据收集 1 各文件说明 img 存放爬取的图片 async spider 异步爬虫类 data collector 爬虫执行脚本 从这里启动 i
  • 京东搜索EE链路演进

    导读 搜索系统中容易存在头部效应 中长尾的优质商品较难获得充分的展示机会 如何破除系统的马太效应 提升展示结果的丰富性与多样性 助力中长尾商品成长是电商平台搜索系统的一个重要课题 其中 搜索EE系统在保持排序结果基本稳定的基础上 通过将优质
  • 多工程项目打包成功,运行失败(仅参考)

    打包了好几次 成功了 但到了线上运行了 当然这样看是看不出来的 看了error log 是找不到某个类 解决方案 多工程项目打包 最好用root的package 会打包所有工程
  • 【满分】【华为OD机试真题2023 JAVA&JS】取出尽量少的球

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 取出尽量少的球 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 某部门开展Family Day开放日活动 其中有个从桶里取球的游戏 游戏规则如下 有N个容量一样的小
  • vue 中 的scroll插件vuescroll

    vuescroll 官网 https vuescrolljs yvescoding org zh guide configuration html detectresize 主要配置如下 在data里面 ops vuescroll mode
  • angular 根据当前日期显示本周,上周,本月,上月,本季度,本年度时间段

    angular Date处理模块 根据当前日期获取本周 上周 本月 上月等时间段 知识准备 Date对应方法 getDate 返回月中的第几天 从 1 到 31 getDay 返回星期几 0 6 setDate day 设置 Date 对象
  • 【c语言】malloc函数详解

    谈到malloc函数相信学过c语言的人都很熟悉 但是malloc底层到底做了什么又有多少人知道 1 关于malloc相关的几个函数 关于malloc我们进入Linux man一下就会得到如下结果 也可以这样认为 window下 原型 ext
  • 关于多线程与CPU时间片

    几个知识点 进程是操作系统分配资源的基本单位 很明显在 proc pid目录下你可以看到每一个进程的详细信息 资源情况 但是你却找不到线程的资源信息 那是因为线程是共享了进程的资源 线程是操作系统调度的基本单位 我们打开top命令看到的 t
  • 创建Vue脚手架&分析脚手架结构

    一 初始化脚手架 1 1 说明 1 Vue 脚手架是 Vue 官方提供的标准化开发工具 开发平台 2 最新的版本是 4 x 3 文档 Vue CLI 1 2 具体步骤 第一步 仅第一次执行 全局安装 vue cli npm install
  • iostat 命令

    iostat 命令主要通过观察物理磁盘的活动时间以及他们的平均传输速度 监控系统输入 输出设备负载 根据 iostat 命令产生的报告 用户可确定一个系统配置是否平衡 并据此在物理磁盘与适配器之间更好地平衡输入 输出负载 iostat 工具
  • CocosCreator TypeScript使用protobuf

    开发环境 Mac环境 CocosCreator TypeScript 使用protobuf 准备工作 1 CocosCreator 2 WebStorm VSCode 3 安装node js 4 下载protobufjs6 8 6 命令行安
  • CRC-模2除法

    在循环冗余校验码 CRC 的计算中有应用到模2除法 模2除法的特点就是 每一位除的结果不影响其它位 即不向上一位借位 模2除法原则 1 被除数的首位为1 商为1 2 被除数的首位为0 商为0 3 模2除法等同于按位异或 要保证每次除完首位都
  • 快排代码实现

    快排代码实现如下 快排练习 author Eleven version v1 0 date 2021 2021 10 6 19 52 public class FastSortExer public static void main Str
  • Unity动画系统详解3:如何播放、切换动画?

    摘要 长文预警 建议先收藏 有了模型和多个动画以后 在Unity中如何控制它们的播放和切换呢 本文带你一站式解析Unity的Animator模块 洪流学堂 让你快人几步 你好 我是跟着大智学Unity的萌新 我叫小新 这几周一起来复 yu
  • 基于Pytorch的神经网络部分自定义设计

    一 基础概念 学习笔记 1 训练误差和泛化误差 1 本质上 优化和深度学习的目标是根本不同的 前者主要关注的是最小化目标 后者则关注在给定有限数据量的情况下寻找合适的模型 训练误差和泛化误差通常不同 由于优化算法的目标函数通常是基于训练数据
  • 世界上最难的视觉图_世界上最长的蛇有多长?四川惊现55米洪荒巨蟒(图)

    蛇 一直是站在食物链顶端的致命生物 蟒蛇更是能够吞食人类的恐怖巨兽 网传世界上最长的蛇有500米之长 名为 红海巨蛇 已被证实为虚假传言 以地球现在的环境是不可能出现如此之大的蛇的 据说四川发现了罕见的55米长的巨蟒 堪称世界上最长的蛇 是
  • QT QWebView/QWebEngineView使用

    一 简介 使用QT程序可以访问web页面 但在不同QT版本中使用的类和方法不同 1 Qt4中使用webkit模块 2 Qt5 Qt5 5使用webkitwidgets模块 3 Qt5 6以上版本使用webenginewidgets模块 所以