0

QWebView (QWebPage) でチェックボックスのチェック状態を処理する必要があります。

詳細:

HTML にはいくつかのチェックボックスがあります。それらのいくつかがチェックされたときにアプリケーションを変更したい。そのためには、いつ変更されたかを知る必要があります。

どうやってするの?

4

1 に答える 1

0

簡単ではない。ここに回避策があります。不完全ですが、十分に実用的です。

のサブクラスを作成しQObjectますNotifier。これは、ウェブの世界からネイティブの世界への架け橋になります。チェックボックスがチェックされている場合に実装したい変更は、ここに直接配置するか、シグナル/スロットメカニズムを介してチェーンのさらに下に転送できます。

addToJavaScriptWindowObjectを使用して、このNotifierオブジェクトのインスタンスを Web ページに挿入します。グローバルオブジェクトにアタッチされます。ここで、DOM のaddEventListenerを使用して新しいリスナーをチェックボックスに追加します。リスナーはブリッジのコールバックを呼び出すだけです。このリスナーの微調整は、 evaluateJavaScriptを使用して小さな JavaScript コードを実行することで実行できます。windowwindow.notifier.doSomething()

このトリックが機能するのは、QtWebKit の内部ブリッジが QObject インスタンスを (イントロスペクションによって) 理解し、そのプロパティとスロットを JavaScript の世界からアクセスできるようにするためです。

于 2013-01-07T00:46:12.813 に答える