QWebView (QWebPage) でチェックボックスのチェック状態を処理する必要があります。
詳細:
HTML にはいくつかのチェックボックスがあります。それらのいくつかがチェックされたときにアプリケーションを変更したい。そのためには、いつ変更されたかを知る必要があります。
どうやってするの?
簡単ではない。ここに回避策があります。不完全ですが、十分に実用的です。
のサブクラスを作成しQObject
ますNotifier
。これは、ウェブの世界からネイティブの世界への架け橋になります。チェックボックスがチェックされている場合に実装したい変更は、ここに直接配置するか、シグナル/スロットメカニズムを介してチェーンのさらに下に転送できます。
addToJavaScriptWindowObjectを使用して、このNotifier
オブジェクトのインスタンスを Web ページに挿入します。グローバルオブジェクトにアタッチされます。ここで、DOM のaddEventListenerを使用して新しいリスナーをチェックボックスに追加します。リスナーはブリッジのコールバックを呼び出すだけです。このリスナーの微調整は、 evaluateJavaScriptを使用して小さな JavaScript コードを実行することで実行できます。window
window.notifier.doSomething()
このトリックが機能するのは、QtWebKit の内部ブリッジが QObject インスタンスを (イントロスペクションによって) 理解し、そのプロパティとスロットを JavaScript の世界からアクセスできるようにするためです。