문제

내 응용프로그램에 "시작 페이지"가 ​​있습니다. QWebView 내 서버에서 페이지를 다운로드하는 위젯입니다.

사용자가 링크를 클릭하면 위젯이 아닌 기본 브라우저에서 링크가 열리도록 하고 싶습니다.

이것을 할 수 있는 방법이 있나요? QWebView?아니면 다른 접근 방식을 취해야 합니까?

도움이 되었습니까?

해결책

QWebPage::setLinkDelegationPolicy(QWebPage::DelegateAllLinks)를 호출한 다음 QWebView::linkClicked 신호(const QUrl & url)를 슬롯에 연결하고 슬롯에서 브라우저를 실행하십시오.기본 브라우저가 무엇인지 알아내는 것은 약간 더 복잡하며 사용자가 실행 중인 데스크톱에 따라 다릅니다.환경 변수 BROWSER에는 기본값이 포함되는 경우가 많습니다.

또는 사용 QDesktopServices::openUrl [댓글에서 gnud가 제안한대로]

다른 팁

링크가 외부에 있다고 가정하면 전화를 걸 수 있습니다. QWebView::setOpenExternalLinks(true) QWebView 위젯에서.이 속성은 기본적으로 false입니다.true로 설정하면 외부 링크가 기본 웹 브라우저에서 열립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top