如何在 QtCreator 中分​​析 PySide2 + QML?

Whi*_*ork 2 qt qt-creator qml qt5 pyside2

我有一个 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')
Run Code Online (Sandbox Code Playgroud)

我检查了项目的工具包设置,它使用了所有默认值。我在网上找不到任何与此错误消息相关的文章/讨论。如何解决这个问题?

Whi*_*ork 5

解决这个问题包括两个步骤:

  1. 启用应用程序调试

在实例化 QApplication 之前添加以下行:

from PySide2.QtQml import QQmlDebuggingEnabler

debug = QQmlDebuggingEnabler()
Run Code Online (Sandbox Code Playgroud)
  1. 将其连接到 QML Profiler

使用命令行参数运行应用程序:-qmljsdebugger=port:10002,block使用您选择的端口。然后转到分析> QML Profiler(附加到等待应用程序)并选择您启动程序的端口: 在此处输入图片说明

这成功地将程序连接到 QML Profiler。