7

Qt アプリケーション内から、同じブラウザー タブ/ウィンドウで URL を繰り返し開きたいと考えています。(このタブをプログラムで「更新」するようなもの)

使用する

QDesktopServices::openUrl(QUrl("http://www.domain.tld"));

通話ごとに新しいタブ/ウィンドウを開きます。どこかに "target=" パラメータを追加する可能性はありますか?

4

2 に答える 2

3

あなたが求めていることは、あなたが想像する方法で行うことは不可能です。openUrl()は、ドキュメントに記載されているように、オペレーティング システムを使用して引数を開くプログラムを指定します。

いくつかの回避策があるかもしれませんが、どれもうまく機能しないか、すべてのブラウザーで機能します。この種のきめの細かい制御はおそらく不可能です。

ブラウザでタブを制御したい場合は、そのタブが表すウィンドウを見つけて、新しいタブを開く直前に閉じることができます。このソリューションは一種のハッキーです。

別のハッキーな解決策は、URL を保持している編集ボックスの HWND を見つけ、SendMessage(). ただし、これは URL ウィンドウ用の別のコントロールを使用しないため、Chrome では機能しません。Firefox または IE で動作する可能性があります。

より良い解決策は、Qt WebKit を使用して制御する独自の Web ブラウザーを作成することです。その中にページをレンダリングして、表示される URL を変更するのは非常に簡単です。QWebViewQtWebKitの使いやすい実装です。

于 2012-11-03T22:37:12.833 に答える