我正在使用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&gt;提示并很快spyder崩溃。
问题1:这可以解决吗? 问题2:当tkinter窗口打开时,有没有办法让Spyder ipython控制台和变量浏览器窗格运行?
答案 0 :(得分:0)
尝试将frame.pack()更改为frame.grid() 但是,在这个gui中,你并不需要使用几何网格。所以可能只想将Button()。grid()更改为Button()。pack()。