Отправить сообщение между JS и Python в QtWebKit - PullRequest
0 голосов
/ 31 января 2012

Я нашел эту тему в вики: https://wiki.qt.io/Using-QtWebKit-and-QML-with-PySide. Но я не могу запустить пример программы из него. Я использую pyqt4 и получаю следующую ошибку

$ ./main1.py 
Traceback (most recent call last): File “./main1.py”, line 35, in <module> view.setSource(file.replace(’.py’, ‘.qml’))
TypeError: QDeclarativeView.setSource(QUrl): argument 1 has unexpected type ‘str’

У кого-нибудь есть код соуса из этого итога? Может быть, моя проблема в том, что я использую pyqt4 вместо pyside?

1 Ответ

1 голос
/ 31 января 2012

У вас действительно достаточно информации в исключении.

TypeError: QDeclarativeView.setSource(QUrl): argument 1 has unexpected type ‘str’

Здесь QDeclarativeView.setSource(QUrl) говорит, что setSource метод для QDeclarativeView ожидает аргумент QUrl, и вместо этого вы дали простую строку.

Попробуйте это:

view.setSource(QtCore.QUrl(file.replace(’.py’, ‘.qml’)))

Конечно, вам также необходимо импортировать QtCore.

Относительно того, отличается ли это в PyQt4 против PySide:сомневаюсь в этом.PySide документация для QDeclarativeView.setSource также содержит аргумент QUrl.Но PySide может изменить строки на QUrl под капотом.В этом я не уверен.

...