【问题标题】:PyQt debugging in main loop主循环中的 PyQt 调试
【发布时间】:2010-02-04 21:19:47
【问题描述】:

我可以在主循环运行时调试 PyQt 应用程序吗? 执行 sys.exit(app.exec_()) 时,Pdb、NetBeans、PyDev 都“冻结”。 我可能遗漏了一些明显的东西。或者有什么问题吗? 我为我的“令人毛骨悚然”的英语道歉。谢谢。

【问题讨论】:

  • 可能不是最干净的方法,但我喜欢 IPython 库中的 embed() 函数。它基本上会在您放置 embed() 函数的任何位置打开 IPython,并允许您在那里访问变量和内容。不幸的是,与真正的调试器不同,您不能逐行检查代码。

标签: python debugging pyqt


【解决方案1】:

我假设您的 main() 函数看起来像这样:

def __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    myapp = MyApplication()
    myapp.show()
    sys.exit(app.exec_())

如果没有,请发布一些示例代码以帮助确定可能出现的问题。

如果您的代码是这样的,您可以使用 IDLE(包含在 Python 安装中)调试程序的任何部分。进入 IDLE 后,转到 Debug-->Debugger 转至 DEBUGGING ON. 然后打开您的 .py 文件并运行它 (F5)。您可以通过右键单击文件中的任意行并选择Set Breakpoint来设置断点。

查看这个其他 SO 问题以获取更多信息和替代调试器/IDE 的良好链接:

Cleanest way to run/debug python programs in windows

【讨论】:

  • 感谢您链接到另一个 SO 问题 - 已接受的答案讨论了 winpdb + winpdb 教程的链接 - 如果您体验到主 PyQt 循环的“冻结”,这就是您所需要的。
猜你喜欢
  • 2011-08-17
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 2014-09-04
  • 1970-01-01
相关资源
最近更新 更多