使用QWebEngine实现简单的浏览器
程序员文章站
2022-07-13 13:38:19
...
使用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());
});//网址被改变
上一篇: Qt与Web开发之QWebEngineView(一)
下一篇: 阿里云服务器Centos7更换源