私のアプリケーションには、私のサーバからページをダウンロードするちょうどQWebView
ウィジェットである「スタートページ」があります。QWebViewから外部ブラウザを開く
ユーザーがリンクをクリックすると、ウィジェットではなくデフォルトのブラウザで開くことができます。
QWebView
でこれを行う方法はありますか?あるいは私は別のアプローチを取るべきですか?
私のアプリケーションには、私のサーバからページをダウンロードするちょうどQWebView
ウィジェットである「スタートページ」があります。QWebViewから外部ブラウザを開く
ユーザーがリンクをクリックすると、ウィジェットではなくデフォルトのブラウザで開くことができます。
QWebView
でこれを行う方法はありますか?あるいは私は別のアプローチを取るべきですか?
QWebPage :: setLinkDelegationPolicy(QWebPage :: DelegateAllLinks)を呼び出し、QWebView :: linkClicked(const QUrl & URL)というシグナルをスロットに接続し、スロット内でブラウザを実行します。 デフォルトブラウザが何であるかを知ることは、やや複雑で、ユーザーが実行しているデスクトップによって異なります。環境変数BROWSERにはデフォルト値が含まれることがよくあります。リンクは外部にあると仮定すると、
[コメントにgnudによって示唆されているように]
または使用QDesktopServices::openUrl、あなたは自分のQWebViewウィジェット上QWebView::setOpenExternalLinks(true)を呼び出すことができます。プロパティはデフォルトでfalseです。これをtrueに設定すると、デフォルトのWebブラウザで外部リンクが開きます。
ブラウザを開くには、QDesktopServices :: openUrl - http://doc.trolltech.com/4.5/qdesktopservices.html#openUrl – gnud