Как профилировать PySide2 + QML в QtCreator?

У меня есть приложение PySide2, которое использует QML для отображения пользовательского интерфейса. Приложение работает из командной строки. Я также могу запустить его, а также отладить в QtCreator. Однако когда я пытаюсь запустить QmlProfiler, я вижу следующую ошибку:

:-1: error: /home/username/code/project/venv/bin/python: Error while finding module specification for 'ljsdebugger=file:/tmp/QtCreator-kVUFuF/qtcreator-freesocket.XgLEKq,block,services:CanvasFrameRate,EngineControl,DebugMessages,DebugTranslation' (ModuleNotFoundError: No module named 'ljsdebugger=file:/tmp/QtCreator-kVUFuF/qtcreator-freesocket')

Я проверил настройки комплекта проекта, и он использует все значения по умолчанию. Мне не удалось найти в Интернете соответствующих статей / обсуждений с этим сообщением об ошибке. Как решить эту проблему?


person WhiteStork    schedule 28.09.2020    source источник


Ответы (1)


Решение этой проблемы состоит из двух шагов:

  1. Включите отладку приложения

Добавьте строку перед мгновенным запуском QApplication:

from PySide2.QtQml import QQmlDebuggingEnabler

debug = QQmlDebuggingEnabler()
  1. Подключите его к QML Profiler

запустите приложение с параметром командной строки: -qmljsdebugger=port:10002,block с выбранным вами портом. Затем перейдите в Analyze ›QML Profiler (Присоединить к ожидающему приложению) и выберите порт, с которого вы запустили программу: введите описание изображения здесь

Это успешно подключило программу к QML Profiler.

person WhiteStork    schedule 29.09.2020