gpt4 book ai didi

c++ - 从托管在 QWebKit 上的 Flash Player 打开外部链接

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:46 24 4
gpt4 key购买 nike

我在 QWebkit 上运行了 flash player,在 flash player 上有一些网络链接需要在外部浏览器中打开,我所做的是:

m_webView->page()->setLinkDelegationPolicy(QWebPage::LinkDelegationPolicy::DelegateAllLinks);
connect(m_webView->page(),SIGNAL(linkClicked(const QUrl&)),
this,
SLOT(linkClickedHandler(const QUrl&)),Qt::DirectConnection);


void WebBroswerDeleget::linkClickedHandler(const QUrl& url)
{
QDesktopServices::openUrl(QUrl(url.toString(), QUrl::TolerantMode));
}

但它从未触发,即使我将连接从 m_webView->page() 更改为 m_webView

最佳答案

我像这样覆盖了 QWebview::createWindow:

QWebView* MyAdWebview::createWindow (QWebPage::WebWindowType type)
{
QWebView* p = new QWebView(0);
connect(p->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*)), this, SLOT(newWindowLoadFinished(QNetworkReply*)), Qt::UniqueConnection);
return p;
}

void MyAdWebview::newWindowLoadFinished(QNetworkReply* reply) {
QDesktopServices::openUrl(reply->url().toString());
}

QDesktopServices::openUrl 是一个自定义函数,它使用此 url 打开默认系统浏览器

关于c++ - 从托管在 QWebKit 上的 Flash Player 打开外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com