Qt6.3 没有qwebview
时间: 2024-02-16 21:24:27 浏览: 180
Qt例程源代码QWebView.7z
5星 · 资源好评率100%
是的,从Qt 5.6开始,QtWebView和QWebEngineView可以用于在Qt应用程序中嵌入Web内容。而在Qt 6中,QWebEngineView被标记为已弃用,并从Qt中删除。Qt官方推荐使用QtWebEngine替代QWebEngineView。
下面是一个打开网页并可以点击链接的QtWebEngineView的例子:
```cpp
#include <QApplication>
#include <QtWebEngineWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWebEngineView *webView = new QWebEngineView();
webView->show();
webView->load(QUrl("https://www.baidu.com"));
return app.exec();
}
```
同样需要注意的是,QtWebEngineView默认是不支持点击链接的,需要我们手动开启。
在QtWebEngineView的构造函数中,我们需要设置一些属性:
```cpp
QWebEnginePage *webPage = new QWebEnginePage();
webView->setPage(webPage);
webView->page()->setLinkDelegationPolicy(QWebEnginePage::DelegateAllLinks);
connect(webView, SIGNAL(linkClicked(const QUrl&)), webView, SLOT(load(const QUrl&)));
```
这里我们创建了一个QWebEnginePage对象,并将其设置为QtWebEngineView的页面。然后我们设置了QWebEnginePage的LinkDelegationPolicy属性为DelegateAllLinks,表示所有链接都交由Qt来处理。最后我们连接了linkClicked信号和load槽函数,这样当用户点击链接时,就会自动加载链接指向的网页。
完整的代码如下:
```cpp
#include <QApplication>
#include <QtWebEngineWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWebEngineView *webView = new QWebEngineView();
QWebEnginePage *webPage = new QWebEnginePage();
webView->setPage(webPage);
webView->page()->setLinkDelegationPolicy(QWebEnginePage::DelegateAllLinks);
connect(webView, SIGNAL(linkClicked(const QUrl&)), webView, SLOT(load(const QUrl&)));
webView->show();
webView->load(QUrl("https://www.baidu.com"));
return app.exec();
}
```
希望可以帮助到你。
阅读全文