python - 在主循环中是否有任何方法可以调试 Python tkinter 应用程序?
问题描述
我试图调试我的 python tkinter 应用程序,但我注意到我的调试器在到达 tkinter 的 mainloop() 方法时刚刚停止工作。
尽管我的应用程序按预期工作,但与之交互似乎并没有更新我的调试器或变量值。在四处搜索之后,我发现关于该主题的信息非常少,并且由于核心库是用 C 编写的,因此在 mainloop 中无法调试 tkinter 应用程序。
当然必须有一些解决方法?
目前,我发现自己必须手动调试 tkinter 应用程序上的每一个交互,随着我的应用程序变得复杂,这非常耗时且效率低下。
解决方案
不要在主循环之前放置断点。在要调试的操作中放置断点,例如按钮命令:
def command():
print("hello") # <-- breakpoint here
tk.Button(frame,
text="Hello",
command=command)
然后调试器可以停在那里。
推荐阅读
- c++ - 为什么这里没有调用移动构造函数?
- curl - 如何使用在修改和恢复时不起作用的 http 请求抓取网页?
- python - 如何选择一列的一些值并用它们制作另一个?
- swift - 货币匹配“23a”的正则表达式,其中意外
- docker - 如何在带有可见浏览器的 docker 容器中运行 Selenium 测试?
- javascript - fullcalendar 格式 dayGrid 日单元格以显示月份和日期
- ruby-on-rails - 在 Rails 和 Heroku 中使用 credentials.yml
- c++ - Qt5 - 如何传递`QList
*` 指针作为信号参数并在完成时将其删除? - azure - 如何上传到 Azure blob 并按日期创建子目录
- python - TypeError: 'str' object is not callable - 直接从源代码复制代码并收到此错误。为什么?