Доступ к функции python из javascript в QWebView

Я пишу приложение Python/PyQt4, которое генерирует и отображает страницу в виджете QWebView. Страница включает код javascript, который я хотел бы иметь возможность вызывать функции, возвращающие данные из приложения python.

Пока что я могу вызывать функции, которые не возвращают данные (используя декоратор pyqtSlot), и вызывать функции, которые принимают параметры, предоставляя их как свойства (используя декоратор pyqtProperty). Чего я еще не придумал, так это вызвать функцию Python с параметрами, которая возвращает данные.

Вопрос 9615194 объясняет, как это сделать с C++, но я не вижу, как перенести это на PyQt4.


person Chris Crook    schedule 01.08.2012    source источник


Ответы (1)


Я подозреваю, что вы не используете ключевое слово result= для указания возвращаемого значения в декораторе pyqtSlot?

@pyqtSlot(str, result=str)
def echo(self, phrase):
    return self.parent().echo(phrase)

Я сам столкнулся с этим недавно. Никаких ошибок не генерируется, если вы опускаете result=, метод просто ничего не возвращает. Довольно безумно, пока я не понял это. См. мой ответ на этот вопрос для работающего примера.

person evadeflow    schedule 02.08.2012