前言:
每个网站都有一个 Logo 图标,它一般显示在网站标题的前面,这个图标文件是可以获取到的。下面介绍了获取图标文件的方法。
QWebEngineView 实现的网页内容是可以进行缩放的,下面介绍了听过 Ctrl++、Ctrl--和 Ctrl+0 实现放大、缩小和重置的功能。
获取网站图标文件:
网站的图标可以使用 QWebEngineView 的 iconUrl() 函数返回该图标的 url,然后使用网络访问接口类来获取图标文件。
因为使用到网络访问,所以要在.h 文件中添加前置类 QNetworkAccessManager,网络访问的详细使用方法可以参考其他的文章。
connect(view, &QWebEngineView::iconUrlChanged, this, &MainWindow::handleIconUrlChanged());
复制代码
获取到图标的 url 后,通过 QNetworkAccessManager 调用 get()函数来获取图标文件。
void MainWindow::handleIconUrlChanged(const QUrl &url){ QNetworkRequest iconRequest(url); QNetworkReply *iconReply = manager->get(iconRequest); iconReply->setParent(this); connect(iconReply, &QNetworkReply::finished, this, &MainWindow::handleIconLoaded);}
void MainWindow::handleIconLoaded(){ QIcon icon; QNetworkReply *iconReply = qobject_cast<QNetworkReply *>(sender()); if(iconReply && iconReply->error() == QNetworkReply::NoError) { QByteArray data = iconReply->readAll(); QPixmap pixmap; pixmap.loadFromData(data); icon.addPixmap(pixmap); iconReply->deleteLater(); }else{ icon = QIcon(QStringLiteral("../image/defaulticon.png")); } setWindowIcon(icon);}
复制代码
实现网页内容的放大、缩小、重置:
使用 QWebEngineView 的 setZoomFactor(qreal factor) 函数可以实现网页内容的缩放,其中,factor 是缩放因子,它的取值范围是 0.25~5.0,表示最大可以放大到 500%,最小可以缩小到 25%。可以通过 zoomFactor() 函数获取网页内容现在的缩放因子是多少。
QMenu *viewMenu = new QMenu(tr("查看"));//放大QAction *zoomIn = viewMenu->addAction(tr("放大"));zoomIn->setShortcurt(QKeySequence(Qt::CTRL | Qt::Key_Plus));connect(zoomIn, &QAction::triggered, [this](){ view->setZoomFactor(view->zoomFactor() + 0.1);//放大1%});//缩小QAction *zoomOut = viewMenu->addAction(tr("缩小"));zoomOut->setShortcurt(QKeySequence(Qt::CTRL | Qt::Key_Minus));connect(zoomOut, &QAction::triggered, [this](){ view->setZoomFactor(view->zoomFactor() - 0.1);//缩小1%});//重置QAction *resetZoom = viewMenu->addAction(tr("重置"));resetZoom->setShortcurt(QKeySequence(Qt::CTRL | Qt::Key_0));connect(resetZoom, &QAction::triggered, [this](){ view->setZoomFactor(1.0);//缩小1%});menuBar()->addMenu(viewMenu);
复制代码
评论