首页 > 解决方案 > 在主循环中是否有任何方法可以调试 Python tkinter 应用程序?

问题描述

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

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

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

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

标签: pythonpython-3.xtkinter

解决方案


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

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

tk.Button(frame,
          text="Hello",
          command=command)

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


推荐阅读