qt android openurl,如何使QML WebView元素对所有“新窗口”使用Qt::openUrlExternally?

我不认为使用QML有一种简单的方法可以做到这一点。您可以使用标准QWebView执行此操作,但无法从QML中访问此功能。您需要重新包装QWebView并公开更多功能。

使用标准C++接口的示例:

TEST.CPP

#include

#include

#include "handler.hpp"

int main(int argc, char** argv)

{

QApplication app(argc, argv);

QWebView view;

view.load(QUrl::fromUserInput("http://qt-project.org/"));

view.page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

LinkHandler handler;

QObject::connect(

&view, SIGNAL(linkClicked(const QUrl&)),

&handler, SLOT(open(const QUrl&)));

view.show();

return app.exec();

}handler.hpp

#ifndef _HANDLER_HPP_

#define _HANDLER_HPP_

#include

class LinkHandler : public QObject

{

Q_OBJECT

public:

LinkHandler();

public slots:

void open(const QUrl& url);

};

#endifhandler.cpp

#include "handler.hpp"

LinkHandler::LinkHandler() : QObject() {}

void LinkHandler::open(const QUrl& url)

{

QDesktopServices::openUrl(url);

}的CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

find_package(Qt4 4.8 REQUIRED QtCore QtGui QtWebkit)

include(${QT_USE_FILE})

qt4_wrap_cpp(MOC_FILES handler.hpp)

add_executable(test

test.cpp

handler.hpp

handler.cpp

${MOC_FILES})

target_link_libraries(test ${QT_LIBRARIES})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值