2016-05-31 4 views
1

私はpython3 + webkit2 + gtk3ベースのGUIを書いています。すべて正常に動作しますが、WebKit2.WebView.run_javascript_finish()をコールバック関数で使用して、WebKit2.JavascriptResult.get_value()を使用して戻り値(WebKit2.JavascriptResult objetc)を取得したとき、 TypeError: 'JavaScriptCore.Value'の外部構造体コンバーターが見つかりませんでした。WebKit2.JavascriptResult.get_value()が例外をスローします。 "TypeError: 'JavaScriptCore.Value'の外部構造体コンバータが見つかりませんでした。

インポートに「gi.repository import JavaScriptCore」がありますが、なぜこのエラーが発生しているのかわかりません。

ps:ひどい英語について申し訳ありません。

答えて

1

残念ながら、JavaScriptCoreライブラリの使用はPythonではサポートされていません。

gi.repository.JavaScriptCoreの定義には、これらの型を使用する関数の型情報を提供するために、JavaScriptCore.ValueおよびJavaScriptCore.GlobalContextの不透明な定義のみが含まれています。 /usr/share/gir-1.0/JavaScriptCore-4.0.girで確認することができます。しかし、あなたが発見したように、それらの関数をネイティブのPythonオブジェクトに変換する方法についての情報がないので、実際にそれらの関数を呼び出すことはできません。

WebKit2.JavaScriptResultを取り込み、必要な情報を取り出して、その関数を専用のGIRライブラリにエクスポートする、Cで関数を書くことをお勧めします。したがって、あなたはPythonコードでJavaScriptCore型を使用しません。これは、次のようになります。

from gi.repository import MyAppPrivate 
# ... 
def on_javascript_finish(obj, res): 
    result = obj.run_javascript_finish(res) 
    my_real_results = MyAppPrivate.process(result) 
+0

ありがとう、CとGIRは、私が扱うことができるよりも複雑ですが、私は答えを得ることについて幸せです。 –

関連する問題