如何在QtCreator中对PySide2 + QML进行性能分析?

4

我有一个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')

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

2个回答

8
解决这个问题需要以下两个步骤:
  1. 启用应用程序调试

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

from PySide2.QtQml import QQmlDebuggingEnabler

debug = QQmlDebuggingEnabler()
  1. 将其连接到 QML Profiler

使用带有命令行参数的方式运行该应用程序:-qmljsdebugger=port:10002,block,其中端口号可自定义。然后转到"分析"> "QML Profiler"(附加到等待应用程序),并选择您启动程序时的端口号: enter image description here

这样就成功将程序连接到了QML Profiler。


-1
from PySide6.QtQml import QQmlDebuggingEnabler

debug = QQmlDebuggingEnabler()

它在Pyside6中也很有用,感谢@WhiteStork


1
目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接