Qt アプリケーション内から、同じブラウザー タブ/ウィンドウで URL を繰り返し開きたいと考えています。(このタブをプログラムで「更新」するようなもの)
使用する
QDesktopServices::openUrl(QUrl("http://www.domain.tld"));
通話ごとに新しいタブ/ウィンドウを開きます。どこかに "target=" パラメータを追加する可能性はありますか?
あなたが求めていることは、あなたが想像する方法で行うことは不可能です。openUrl()は、ドキュメントに記載されているように、オペレーティング システムを使用して引数を開くプログラムを指定します。
いくつかの回避策があるかもしれませんが、どれもうまく機能しないか、すべてのブラウザーで機能します。この種のきめの細かい制御はおそらく不可能です。
ブラウザでタブを制御したい場合は、そのタブが表すウィンドウを見つけて、新しいタブを開く直前に閉じることができます。このソリューションは一種のハッキーです。
別のハッキーな解決策は、URL を保持している編集ボックスの HWND を見つけ、SendMessage()
. ただし、これは URL ウィンドウ用の別のコントロールを使用しないため、Chrome では機能しません。Firefox または IE で動作する可能性があります。
より良い解決策は、Qt WebKit を使用して制御する独自の Web ブラウザーを作成することです。その中にページをレンダリングして、表示される URL を変更するのは非常に簡単です。QWebViewはQtWebKitの使いやすい実装です。