Python 主循环中的PyQt调试

Python 主循环中的PyQt调试,python,debugging,pyqt,Python,Debugging,Pyqt,我可以在主循环运行时调试PyQt应用程序吗? Pdb、NetBeans、PyDev,在执行sys.exit(app.exec_389;())时都“冻结”。 我可能遗漏了一些明显的东西。或者有什么问题? 我为我的“令人毛骨悚然”的英语道歉。谢谢。我假设您的main()函数如下所示: def __name__ == '__main__': app = QtGui.QApplication(sys.argv) myapp = MyApplication() myapp.show

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

我假设您的
main()
函数如下所示:

def __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    myapp = MyApplication()
    myapp.show()
    sys.exit(app.exec_())
如果没有,请发布一些示例代码来帮助确定可能的错误

如果这就是代码的样子,那么可以使用IDLE(包括在Python安装中)调试程序的任何部分。空闲状态下,转到调试-->调试器以打开
调试。
然后打开.py文件并运行它(F5)。您可以通过右键单击文件中的任意一行并选择设置断点来设置断点

检查其他SO问题,以获取更多信息和指向其他调试器/IDE的良好链接:


我假设您的
main()
函数如下所示:

def __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    myapp = MyApplication()
    myapp.show()
    sys.exit(app.exec_())
如果没有,请发布一些示例代码来帮助确定可能的错误

如果这就是代码的样子,那么可以使用IDLE(包括在Python安装中)调试程序的任何部分。空闲状态下,转到调试-->调试器以打开
调试。
然后打开.py文件并运行它(F5)。您可以通过右键单击文件中的任意一行并选择设置断点来设置断点

检查其他SO问题,以获取更多信息和指向其他调试器/IDE的良好链接:


感谢您链接到另一个SO问题-有公认的答案讨论winpdb+到winpdb教程的链接-如果您体验到主PyQt循环的“冻结”,这就是您所需要的一切。感谢链接到另一个SO问题-有公认的答案讨论winpdb+到winpdb教程的链接-如果您体验到“冻结”,这就是您所需要的一切可能不是最干净的方法,但是我喜欢IPython库中的embed()函数。它基本上打开了IPython,无论您在哪里放置embed()函数,并允许您访问其中的变量和内容。不幸的是,与真正的调试器不同,您无法逐行检查代码。这可能不是最干净的方法,但我喜欢IPython库中的embed()函数。它基本上打开了IPython,无论您在哪里放置embed()函数,并允许您访问其中的变量和内容。不幸的是,与真正的调试器不同,您不能逐行检查代码。