2016-08-09 2 views
1

Я использую tkinter для создания графического интерфейса с помощью anaconda python и spyder на OSX. Я не могу получить подсказку в консоли ipython, пока мое окно tkinter открыто. Я могу установить точку останова и попасть в отладчик, но после этого Spyder скоро замерзнет или сбой.tkinter debugging with 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() 

я запускаю отладчик и установить контрольную точку в функции переключения(). В IPDB> подскажите я могу получить состояние кадра, но ничего для кнопки, как показано ниже:

ipdb> frame 
<tkinter.Frame object .4709317264> 

ipdb> button 

я нажимаю на кнопку в окне Tkinter и обратно в IPDB> быстрое и вскоре Spyder аварии.

Вопрос 1: Можно ли это исправить? Вопрос 2: Есть ли способ открыть панель Spyder ipython и панель explorer для работы при открытии окна tkinter?

ответ

0

Попробуйте изменить frame.pack() на frame.grid() в этом gui, вам действительно не нужно использовать сетку для геометрии. Так что просто можно изменить Button(). Grid() на Button(). Pack().