使用QWebEngine实现简单的浏览器

版权声明:博客内容整合自多篇文章,如有雷同,并非巧合。纯正开源之美,有趣、好玩、靠谱。。。 https://blog.csdn.net/lmhuanying1012/article/details/79703025
使用QWebEngine实现了一个简单的浏览器。
只有后退、前进、刷新功能,也不能说是实现,应该说是QWebEngine提供了该功能,这里仅仅调用而已。
经测试QWebEngine在Qt5.9.1版本下,貌似仅支持MSVC编译,不支持minGW和安卓方式。
界面如图。
增加模块引用

QT       +=  webenginewidgets

控件布局:

 for(int i=0;i<5;i++)
        button[i] = new QPushButton;
    button[0]->setText("后退");
    button[1]->setText("前进");
    button[2]->setText("刷新");
    edit = new QLineEdit;
    edit->setText("http://www.baidu.com");

    hlayout = new QHBoxLayout;
    for(int i=0;i<5;i++)
        hlayout->addWidget(button[i]);
    hlayout->addWidget(edit);

    view = new QWebEngineView;
    view->load(QUrl(edit->text()));
    setWindowIcon(view->icon());


    glayout =new QGridLayout;
    glayout->addLayout(hlayout,0,0);
    glayout->addWidget(view);

    this->setLayout(glayout);


功能连接代码:

connect(button[0],&QPushButton::clicked,[=](){
        view->back();
    });//后退

    connect(button[1],&QPushButton::clicked,[=](){
        view->forward();
    });//前进

    connect(button[2],&QPushButton::clicked,[=](){
        view->load(view->url());
    });//刷新

    connect(edit,&QLineEdit::returnPressed,[=](){
        if(edit->text() == "")
            return;
        if(edit->text().indexOf("://") == -1)
            edit->setText("http://"+edit->text());
        view->load(QUrl(edit->text()));
    }); //回车跳转

    connect(view,&QWebEngineView::iconChanged,[=](){
        setWindowIcon(view->icon());
    });//网站图标被改变

    connect(view,&QWebEngineView::titleChanged,[=](){
        setWindowTitle(view->title());
    });//标题被改变

    connect(view,&QWebEngineView::urlChanged,[=](const QUrl& url) mutable {
        edit->setText(url.toString());
    });//网址被改变

展开阅读全文

没有更多推荐了,返回首页