C/C++嵌入BS架构的页面

        最近项目要用C/C++来嵌入BS的网页,经调研发现使用QT Creator工具有直接能用的组件。废话不多说直接上代码。

第一步:创建Qt Widgets项目并修改项目.pro文件添加如下一句

QT       += core gui webenginewidgets

第二步:在main.cpp代码里直接调用代码

#include "mainwindow.h"
#include <QWebEngineView>

#include <QWebEngineView>
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebEngineView *myWeb = new QWebEngineView();
    myWeb->setUrl(QUrl("https://www.baidu.com"));
    myWeb->show();

    return a.exec();

}

 第三步,直接运行代码即可。

注意: 如果BS架构里有打开新的页签操作上面的代码是无法打开页面的,解决方案是重载QWebEngineView里的createWindow函数,也就是要继承QWebEngineView,重载createWindow方法。代码转载自:QT5.12 webengineview鼠标左键点击打开链接_feinxer的博客-CSDN博客_qwebengineview 超链接

第一步,自定义mywebengine组件,添加headers组件自定义代码,mywebengine.h如下

#include <QWebEngineView>
#include <QWebEnginePage>
#include <QUrl>
#include <QtWidgets>


class MyWebEngine: public QWebEngineView
{
    Q_OBJECT
public:
    MyWebEngine(QWidget *parent=nullptr);
protected:
    // 鼠标左键点击触发
    QWebEngineView * createWindow(QWebEnginePage::WebWindowType type) override;

private slots:
    void onUrlChanged(QUrl url);
};

第二步,在sources组件里添加实现方法,mywebengine.cpp如下

#include "mywebengine.h"


MyWebEngine::MyWebEngine(QWidget *parent):QWebEngineView(parent)
{
    connect(this, SIGNAL(urlChanged(QUrl)), this , SLOT(onUrlChanged(Url)));
}


QWebEngineView *MyWebEngine::createWindow(QWebEnginePage::WebWindowType type)
{
    Q_UNUSED(type)
    QWebEngineView * newview = new QWebEngineView(this);
    connect(newview, SIGNAL(urlChanged(QUrl)), this , SLOT(onUrlChanged(QUrl)));
    return newview;
}


void MyWebEngine::onUrlChanged(QUrl url) {
    setUrl(url);
}

第三步,直接在main.cpp方法里引用,代码如下:

#include "mainwindow.h"
#include "mywebengine.h"

#include <QWebEngineView>
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MyWebEngine *myWeb = new MyWebEngine();
    myWeb->setUrl(QUrl("https://www.baidu.com"));
    myWeb->show();

    return a.exec();

}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值