有没有办法在主循环中调试 Python tkinter 应用程序?

bwr*_*wrr 4 python tkinter python-3.x

我试图调试我的 python tkinter 应用程序,但我注意到我的调试器在到达 tkinter 的 mainloop() 方法时停止工作。

尽管我的应用程序按预期工作,但与它交互似乎没有更新我的调试器或变量值。经过搜索后,我发现有关该主题的信息非常少,并且由于核心库是用 C 编写的,因此无法在主循环中调试 tkinter 应用程序。

当然必须有一些解决方法吗?

目前,我发现自己必须手动调试 tkinter 应用程序上的每一个交互,随着我的应用程序变得复杂,这非常耗时且效率低下。

Ale*_*all 5

不要在主循环之前放置断点。在要调试的操作中放置断点,例如按钮命令:

def command():
    print("hello")  # <-- breakpoint here

tk.Button(frame,
          text="Hello",
          command=command)
Run Code Online (Sandbox Code Playgroud)

然后调试器就可以停在那里。