На самом деле это проблема Jython.
Т.е.: в приведенном ниже коде при вызове TestFunc должна вызываться печать из trace_dispatch, но это не так.
Итак, реализация трассировки Jython не вызывает функцию трассировки, как следует в этой ситуации. Вы можете «помочь» отладчику PyDev, вызвав import pydevd;pydevd.settrace(suspend=False)
, чтобы отладчик узнал об этом кадре (т.е. в начале TestFunc добавьте эту строку кода).
Обратите внимание, что если вы не передадите suspend = False, он будет действовать как точка останова в коде и остановит выполнение в этой строке.
import sys
import threading
def trace_dispatch(frame, event, arg):
print frame.f_code.co_filename, frame.f_code.co_name
sys.settrace(trace_dispatch)
threading.settrace(trace_dispatch)
from javax.swing import JFrame, JButton
def TestFunc(event):
print "Hey"
if __name__ == '__main__':
mainWindow = JFrame('Test',
defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
size = (1024, 600))
mainWindow.add(JButton("Hey", actionPerformed = TestFunc))
mainWindow.visible = True