【问题标题】:tkinter debugging with Spyder使用 Spyder 进行 tkinter 调试
【发布时间】:2016-12-16 03:41:50
【问题描述】:

我正在使用 tkinter 在 OSX 上使用 anaconda python 和 spyder 构建 GUI 应用程序。当我的 tkinter 窗口打开时,我无法在 ipython 控制台中得到提示。我可以设置断点并进入调试器,但之后 Spyder 将很快冻结或崩溃。

这是失败的示例代码:

from tkinter import *

def toggle():
    i = 1
    b = 2
    print(i, b)
    pass

root = Tk()
frame = Frame(root, width=100, height=100)
button = Button(frame,text="Press", command=toggle).grid(column=1, row=1)
frame.pack()
root.mainloop()

我运行调试器并在 toggle() 函数中设置断点。在 ipdb> 提示符下,我可以获取框架的状态,但没有任何按钮,如下所示:

ipdb> frame
<tkinter.Frame object .4709317264>

ipdb> button

我单击 tkinter 窗口中的按钮并返回 ipdb> 提示符,很快 spyder 崩溃了。

问题 1:这可以解决吗? 问题 2:有没有办法让 Spyder ipython 控制台和变量资源管理器窗格在 tkinter 窗口打开时正常工作?

【问题讨论】:

    标签: python debugging tkinter spyder


    【解决方案1】:

    尝试将 frame.pack() 更改为 frame.grid() 不过,在这个 gui 中,您实际上并不需要为几何图形使用网格。所以可能只想将 Button().grid() 更改为 Button().pack()。

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 2014-02-01
      • 1970-01-01
      • 2017-03-19
      • 2021-08-06
      • 2018-10-07
      • 2022-11-17
      • 2016-09-22
      • 2020-08-22
      相关资源
      最近更新 更多