qt c++ 打开网页且能点击里面的链接
时间: 2023-08-01 08:10:36 浏览: 146
C++操作sqlite完整例子 QT操作sqlite简单例子 QT快速入门操作数据库的demo QT漂亮qss 免分下载
可以使用Qt自带的QWebView类来实现打开网页的功能。下面是一个简单的例子:
```cpp
#include <QApplication>
#include <QWebView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWebView *webView = new QWebView();
webView->show();
webView->load(QUrl("https://www.baidu.com"));
return app.exec();
}
```
这段代码创建了一个QWebView对象,加载了百度的网页,并显示在窗口上。但是要注意的是,QWebView默认是不支持点击链接的,需要我们手动开启。
在QWebView的构造函数中,我们需要设置一些属性:
```cpp
QWebView *webView = new QWebView();
webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
connect(webView, SIGNAL(linkClicked(const QUrl&)), webView, SLOT(load(const QUrl&)));
```
这里我们设置了QWebPage的LinkDelegationPolicy属性为DelegateAllLinks,表示所有链接都交由Qt来处理。然后我们连接了linkClicked信号和load槽函数,这样当用户点击链接时,就会自动加载链接指向的网页。
完整的代码如下:
```cpp
#include <QApplication>
#include <QWebView>
#include <QWebPage>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWebView *webView = new QWebView();
webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
connect(webView, SIGNAL(linkClicked(const QUrl&)), webView, SLOT(load(const QUrl&)));
webView->show();
webView->load(QUrl("https://www.baidu.com"));
return app.exec();
}
```
希望可以帮助到你。
阅读全文