QT webengine显示HTML简单示例

news2024/11/28 22:45:08

文章目录

  • 参考
  • 示例1
    • TestWebenqine.pro
    • mainwindow.h
    • mainwindow.cpp
    • main.cpp
    • 效果
  • 示例2 (使用setDevToolsPage函数)
    • main.cpp
    • 效果

参考

QT webengine显示HTML简单示例

示例1

  • 编译器 : Desktop Qt 5.15.2 MSVC2019 64bit
  • 编辑器: QtCreator
  • 代码:

TestWebenqine.pro

# TestWebenqine.pro
QT       += core gui webenginewidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

mainwindow.h

//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWebEngineView>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    //使得网页的窗口大小随着mainwindow的窗口大小变化而变化
    void resizeEvent(QResizeEvent *event);

private:
    Ui::MainWindow *ui;

    QWebEngineView *view;  //声明view
};
#endif // MAINWINDOW_H

mainwindow.cpp

//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QResizeEvent>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    view = new QWebEngineView(this);
    //view->setFixedSize(this->width(),this->height());
    view->load(QUrl(QStringLiteral("https://www.qweather.com/weather/luoyang-101180901.html")));
    //view->load(QUrl(QStringLiteral("https://www.baidu.com")));
    view->showMaximized();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::resizeEvent(QResizeEvent *event)
{
    QMainWindow::resizeEvent(event); // 调用基类的 resizeEvent,确保正常的处理

    // 获取新的 mainwindow 大小
    QSize newSize = event->size();

    // 将新的大小应用于 view
    view->setFixedSize(newSize.width(), newSize.height());
}


main.cpp

//main.cpp
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

效果

在这里插入图片描述
在这里插入图片描述

示例2 (使用setDevToolsPage函数)

  • 编译器 : Desktop Qt 5.15.2 MSVC2019 64bit
  • 编辑器: QtCreator
  • 代码:

main.cpp

#include "mainwindow.h"

#include <QApplication>
#include <QWebEngineView>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //MainWindow w;
    //w.show();
    QWebEngineView *view = new QWebEngineView();
    QWebEngineView *view1 = new QWebEngineView();
    view->setUrl(QUrl("http://baidu.com"));
    view->page()->setDevToolsPage(view1->page());
    
    view->setWindowTitle("BaiDu");
    view1->setWindowTitle("DevTool");
    
    view->show();//显示页面
    view1->show();//显示view页面的JS脚本(也就是说:view1是view的开发者工具)
    return a.exec();
}

效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言char的取值范围以及溢出情况

char 的取值范围 有符号&#xff1a; 1111 1111 ~ 1000 0000 — 0000 0000 ~ 0111 1111 -127 ~ -0 0 ~ 127 -128 ~ 127&#xff08;因为不需要两个 0 所以给负值增加了一位&#xff09; char 的溢出情况

C语言其它进制转十进制

权值法介绍 权值法&#xff1a; 主要功能为将 X 进制数据转为十进制的数据&#xff0c;具体流程如下&#xff1a; 将 X 进制中的每一位上的 基数 * 位权&#xff0c;再累加 基数&#xff1a;X 进制中每一位的数码个数 位权&#xff1a;X 进制每一位上对应的权值 二进制转十进…

MyString字符串类

MyString字符串类 包括&#xff1a;有参构造、拷贝构造、移动构造、析构、拷贝赋值和移动赋值。 MyString.h文件 #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> using namespace std;class MyString {private:char* str;unsigned int MaxSize;unsigned i…

C语言 定义一个函数,并调用,该函数中完成百文百鸡问题

#include<stdio.h> int main(int argc, char const *argv[]) {int num 0;for (int i 0; i < 33; i){for (int j 0; j < 50; j){int x 100 - i - j;if(3*i2*jx/3 100 && x%3 0){printf("&#x1f413;有%d只,母鸡有%d只,小鸡有%d只\n",i,j,…

深度学习之基于yolov8的安全帽检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、基于yolov8的安全帽检测系统四. 总结 一项目简介 在企业作业和工地施工过程中&#xff0c;安全永远高于一切。众所周知&#xff0c;工人在进入…

【C++】STL容器——list类的使用指南(含代码演示)(13)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一、list 类——基本介绍二、list 类——…

僵尸网络|让人防不胜防的内部网络安全问题,作为企业IT不得不了解的基础安全

在当今数字化世界中&#xff0c;僵尸网络是一种令人不安的存在。它不是一种具体的物理实体&#xff0c;而是一种由恶意软件控制的虚拟网络。这个网络由成百上千&#xff0c;甚至数百万台计算机组成&#xff0c;这些计算机往往被感染&#xff0c;成为攻击者的"僵尸"&a…

基于深度学习的水果识别系统

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、 水果识别的实验结果分析3.1 实验环境3.2 水果数据集 二、水果识别的界面展示结 论目录 概要 本文详细地介绍了深度学习算法卷积神经网络&#xff08;CNN&#xff09;的发展状况。主要介绍了卷积神经网络的几…

用示例和应用程序了解必要的Golang库

Golang&#xff0c;也被称为Go&#xff0c;因其简单性、性能和并发性支持而在开发人员中迅速流行起来。导致Go成功的关键因素之一是其丰富的库生态系统&#xff0c;可以简化开发并提供解决常见问题的解决方案。在本文中&#xff0c;我们将更仔细地查看一些必要的Golang库&#…

若依框架的使用+代码生成功能

文章目录 导入数据表数据创建一个菜单项生成模块代码导入需要生成的数据表修改需要生成的字段 生成代码使用放行接口接口测试 导入数据表数据 可以使用sql工具等等,导入数据表的数据(安全性考虑,导入图片不贴了) 创建一个菜单项 在系统管理下的菜单管理中创建一个新的菜单项…

【Java 进阶篇】Java Request 请求转发详解

在Java Web开发中&#xff0c;请求转发&#xff08;Request Forwarding&#xff09;是一种常见的技术&#xff0c;用于将请求从一个Servlet转发到另一个Servlet或JSP页面。这种技术在Web应用程序中起着非常重要的作用&#xff0c;可以用于实现模块化、重用代码以及构建更加灵活…

类和对象【上】

目录 面向过程和面向对象 C语言 C 类的定义 类的两种定义方式 成员变量命名规则 类的访问限定符和封装 面试题 封装 类的作用域 类的实例化 类对象模型 内存分配 内存对齐 this指针 特性 面试题 this指针存储在哪里&#xff1f; this指针可以为空么&#xff1…

力扣刷题 day58:10-28

1.奇偶位数 给你一个 正 整数 n 。 用 even 表示在 n 的二进制形式&#xff08;下标从 0 开始&#xff09;中值为 1 的偶数下标的个数。 用 odd 表示在 n 的二进制形式&#xff08;下标从 0 开始&#xff09;中值为 1 的奇数下标的个数。 返回整数数组 answer &#xff0c;…

Linux对网络通信的实现

一、NIO为什么很少注册OP_WRITE事件 1、OP_WRITE触发条件&#xff1a;当操作系统写缓冲区有空闲时就绪。一般情况下写缓冲区都有空闲空间&#xff0c;小块数据直接写入即可&#xff0c;没必要注册该操作类型&#xff0c;否则该条件不断就绪浪费cpu&#xff1b;但如果是写密集型…

200smart 物料分拣案例

[TOC]物料分拣 控制系统动作流程 物料为空时&#xff0c;第三个气缸推出 物料为黑色时&#xff0c;第二个气缸推出 物料为白色时&#xff0c;第一个气缸推出 原理 光电传感器起 到位传感器作用 物料为空时&#xff0c;第三个气缸推出 物料为黑色时&#xff0c;第二个气缸…

正则表达式包含数字和字符匹配

至少6位。 pattern : (?.[0-9])(?.[A-Za-z])[0-9A-Za-z]{6,} 正则表达式中的“?”是一个正向预查字符&#xff0c;它的意思是匹配前一个字符出现的最少一次。具体来说&#xff0c;当一个匹配出现时&#xff0c;它会检查前一个字符是否符合要求&#xff0c;如果符合&#xf…

自学爬虫—作业1—requests模块

视频&#xff1a; 要求&#xff1a; 肯德基地址查询&#xff0c;爬某个关键字&#xff0c;获取下面的所有page的信息&#xff0c;存到一个json或者txt。 代码&#xff1a; 关键点&#xff0c;&#xff08;1&#xff09;每一个ajax的请求第一个键值对就是所有获得的地址的总数…

IOC课程整理-14 Spring 数据绑定

1. Spring 数据绑定使用场景 2. Spring 数据绑定组件 • DataBinder 绑定方法 • bind(PropertyValues)&#xff1a;将 PropertyValues Key-Value 内容映射到关联Bean&#xff08;target&#xff09;中的属性上 • 假设 PropertyValues 中包含“name 小裕哥”的键值对&#xf…

关于ABB 机器人多任务的建立

关于ABB 机器人多任务的建立.需要实时监控某一区域&#xff0c;或者某一信号&#xff0c;或者计件到达某一数量机器人自动停止报警&#xff0c;显示到示教器上&#xff0c;多任务可以实现&#xff0c;类似发那科机器人后台逻辑指令 当软件选项漏选或者少选可以选择修改选项&…

redis的bitmap(面试题,待补充)

位图简介 如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢&#xff1f;如果使用KV存储&#xff0c;每个用户需要记录365个&#xff0c;当用户量上亿时&#xff0c;这所需要的存储空间是惊人的。 Redis 为我们提供了位图这一数据结构&#xff…