Qt使用QWebEngineView一些记录

这篇具有很好参考价值的文章主要介绍了Qt使用QWebEngineView一些记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.关闭软件警告:

Release of profile requested but WebEnginePage still not deleted. Expect troubles!

原因,系统退出关闭view,没有释放page。

解决办法:手动释放page  顺便把view也释放了。

Widget::~Widget()
{
    updateIniDate();
    Sleep(100);

    for(int i=0;i<webDateList.size();i++)
    {
        webDate date=webDateList.at(i);
        SWebEngineView *view=date.view;
        QWebEnginePage *page=view->page();
        delete page;
        page=NULL;

        delete view;
        view=NULL;
    }
    delete ui;
}

2.获取QWebEngineView点击超链接

重写QWebEngineView中的createWindow函数

protected:
    QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);


QWebEngineView *SWebEngineView::createWindow(QWebEnginePage::WebWindowType type)
{
    Q_UNUSED(type);
    emit httpDateUrl(this->url().toString());
    return this;// 自身打开超链接
}

3.获取QWebEngineView当前链接

QWebEngineView自带void urlChanged(const QUrl&)信号槽,直接使用即可

    SWebEngineView * v1=new SWebEngineView(w1);
    connect(v1,SIGNAL(urlChanged(QUrl)),this,SLOT(httpUr(QUrl)));

4.忽略证书错误

重写QWebEnginePage中的certificateError函数

但Qt5和Qt6不一样

目前找到都是Qt5的,有大佬知道Qt6的办法,欢迎评论区指点

protected:
    virtual bool certificateError(const QWebEngineCertificateError &/*error*/);

bool WebEnginePage::certificateError(const QWebEngineCertificateError &certificateError)//忽略证书错误
{
    return true;
}

    WebEngineView * v1=new WebEngineView(this);
    WebEnginePage *page=new WebEnginePage();
    v1->setPage(page);

5.为了实现QWebEngineView类似 视频播放 全屏和退出全屏功能

新建一个showWidget,将QWebEngineView嵌入showWidget中,鼠标进入shwoWidget,出现放大缩小栏。点击进行对应事件触发。

showWidget::showWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::showWidget)
{
    ui->setupUi(this);
    this->installEventFilter(this);//捕获子窗口鼠标事件
}


void showWidget::timerEvents()//鼠标长时间在widget内隐藏状态栏
{
    index++;
    if(index>=8)
    {
        ui->widget->hide();
        index=0;
        if(timer->isActive())
        {
            timer->stop(); 
        }
    }
}

bool showWidget::eventFilter(QObject *object, QEvent *e)
{//鼠标进入状态栏显示   鼠标离开widget 状态栏隐藏
    //qDebug()<<e->type()<<object->objectName();
    if (e->type() == QEvent::Leave )
    {

        //qDebug()<<"鼠标离开"<<object->objectName();
        ui->widget->hide();
        index=0;
        if(timer->isActive())
        {
            timer->stop();
        }
        return QObject::eventFilter(object, e);;   // no di
    }

    if (e->type() == QEvent::Enter )
    {
        //qDebug()<<"鼠标进入"<<object->objectName();
        int w=this->width();
        if(w<1920)
        {
            ui->widget->setGeometry(0,this->height()-60,w,60);
            ui->widget->show();
            index=0;
            if(!timer->isActive())
            {
                timer->start(500);
            }
        }


        return QObject::eventFilter(object, e);;   // no di
    }
    return QObject::eventFilter(object, e);
}

6.播放视频

Qt自带的dll因为版权等原因,不支持MP4、MP3,需要自己进行编译,编译比较麻烦,编译好之后,直接把dll拷贝exe所在目录即可。

后文库链接:使用环境 qt 5.15.2+vs2019  32位和64位  需要的自行下载文章来源地址https://www.toymoban.com/news/detail-729549.html

到了这里,关于Qt使用QWebEngineView一些记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 战斗背景:做了个串口接收界面,用来接收传输过来的信号。但是光用数字显示太单调,需要用图线显示出来。 战略目标:干掉它。 战术路线:Qt 绘图可以使用 Qt Charts,先了解

    2024年02月11日
    浏览(38)
  • 【VisualStudio】基于 Visual Studio 使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月15日
    浏览(50)
  • 【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 我要使用的功能比较简单,主要包含扫描串口、打开串口、发送数据、接收数据、暂停按钮、停止按钮,因此接下里将围绕这几个功能依次更新。 我的工程项目名字叫 “GUI”。

    2024年02月11日
    浏览(57)
  • 【Visual Studio】报错 C2653,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 这个 Bug 是我做这个工程时遇到的:【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面。 使用 C++ 语言,配合 Qt 开发串口通信界面,在添加 Widget 做

    2024年02月11日
    浏览(40)
  • 【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView

    在Qt中, 使用 Qt Charts来创建和操作图表,重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的 QChartView 提供了相关的方法来控制图表的缩放和平移。 示例代码,以及如何对此功能进行扩展: chartView-resetTransform(); 是重置图表视图的缩放到默认状态。

    2024年04月17日
    浏览(30)
  • 记录:Qt Creator 10配置安卓开发环境

    Qt Creator 现在的安卓开发环境配置相比老版本方便了不少,本文以目前在线安装版的 Qt Creator 10.0.2 + Qt 5.15 / Qt 6.5 为例做演示(有些文件可能会因为网络问题需要科学上网才能下载)。 https://adoptium.net/zh-CN/temurin/releases/ Oracle 的 JDK 有商业授权问题,所以直接下 OpenJDK 就行了。

    2024年02月10日
    浏览(38)
  • 【Visual Studio】报错 ASSERT: “i >= 0 && i < size()“,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 这个 Bug 是我做这个工程时遇到的:【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面。 使用 C++ 语言,配合 Qt 开发串口通信界面,在调试动态绘图

    2024年02月11日
    浏览(41)
  • QT支持多种开发语言

    QT主要是一个C++应用程序框架,但它也提供了对其他一些编程语言的官方或非官方支持。以下是QT支持的一些语言版本及其特点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Python (PyQt)  : PyQt是QT的官方Python绑定,允许Python开发者使用QT库来创建

    2024年04月29日
    浏览(38)
  • QT使用QSetting保存程序运行时的一些状态信息到配置文件

    参考:https://zhuanlan.zhihu.com/p/351214526 在产品使用过程中,有些用户有特定的习惯。比如窗口大小是的大小,文件打开的方式等等。 因此我们需要有一个文件来保存用户的一些偏好信息,在程序重新启动的时候再进行偏好设置。 这里用到了QSetting类。 这个类允许你创建一个配

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包