2009-04-12 19 views
4

私のアプリケーションには、私のサーバからページをダウンロードするちょうどQWebViewウィジェットである「スタートページ」があります。QWebViewから外部ブラウザを開く

ユーザーがリンクをクリックすると、ウィジェットではなくデフォルトのブラウザで開くことができます。

QWebViewでこれを行う方法はありますか?あるいは私は別のアプローチを取るべきですか?

答えて

13

QWebPage :: setLinkDelegationPolicy(QWebPage :: DelegateAllLinks)を呼び出し、QWebView :: linkClicked(const QUrl & URL)というシグナルをスロットに接続し、スロット内でブラウザを実行します。 デフォルトブラウザが何であるかを知ることは、やや複雑で、ユーザーが実行しているデスクトップによって異なります。環境変数BROWSERにはデフォルト値が含まれることがよくあります。リンクは外部にあると仮定すると、

+1

ブラウザを開くには、QDesktopServices :: openUrl - http://doc.trolltech.com/4.5/qdesktopservices.html#openUrl – gnud

0

[コメントにgnudによって示唆されているように]

または使用QDesktopServices::openUrl、あなたは自分のQWebViewウィジェット上QWebView::setOpenExternalLinks(true)を呼び出すことができます。プロパティはデフォルトでfalseです。これをtrueに設定すると、デフォルトのWebブラウザで外部リンクが開きます。

関連する問題