1

Qt アプリケーションを HTML で書き直し、QtWebEngine でレンダリングしてもらいたいと考えています。HTML ページが QtWebEngine で表示および実行されることを完全に理解しています。

ただし、私が本当に興味を持っており、ドキュメントを見つけることができないことの 1 つは、QtWebEngine が DOM の要素をネイティブ Qt ウィジェットに「交換」できるかどうかを知ることです。たとえば、<div id="myWidget">実際に QOpenGLWidget である可能性はありますか? これはまったくナンセンスですか?

たとえば、次のことができるようになりたいです。

<body>
<h1>Example</h1>
<div id="myWidget">
</div>
<p>Some text</p>
</body>

そして魔法のように、私の QOpenGLWidget を DOM の "myWidget" の代わりにレンダリングします。私の HTML は QtWebEngine によってのみレンダリングでき、必ずしも他のブラウザーではレンダリングできませんでした。そのため、Chrome/Firefox/IE で動作しないことを意味する解決策があれば、それは私にはまったく問題ありません。

...または、QtWebEngine インスタンスで実行されている JavaScript を使用して「myWidget」の位置を見つけ、その位置に QOpenGLWidget ピクセル データを自分で描画する必要がありますか? 「myWidget」の上にある HTML ダイアログなどを許可しないため、このルートをたどりたくありません。

ここで情報をいただければ幸いです。例(これが可能であれば)は素晴らしいでしょう。よろしくお願いします。

4

1 に答える 1

2

ソリューションQtWebKit:

QWebPluginFactorycreate メソッドでウィジェットをサブクラス化して作成する必要があります。<object>次に、タグを使用してウィジェットを HTML に埋め込むことができます。

<object type="application/x-qt-plugin" name="myWdget" classid="QOpenGLWidget">
</object>

ここで例を参照してください

そして、ここで別の例

... new にはもう有効ではないようですQtWebEngine

于 2015-02-22T18:26:33.980 に答える