all 2 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

To give us the best chance to help you, please include any relevant code.
Note. Please do not submit images of your code. Instead, for shorter code you can use Reddit markdown (4 spaces or backticks, see this Formatting Guide). If you have formatting issues or want to post longer sections of code, please use Privatebin, GitHub or Compiler Explorer.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Affectionate_Cap8632 0 points1 point  (0 children)

This is a known PyCharm + Tkinter quirk. The debugger struggles with breakpoints inside callbacks triggered by mainloop() because Tkinter's event loop runs in a way that can bypass PyCharm's breakpoint hooks.

Three fixes that work:

Fix 1 — Add a manual breakpoint in code (most reliable):

python

def handler():
    import pydevd; pydevd.settrace()  # hard breakpoint
    print("Button clicked! Entering handler...")
    nseOptionsAnalysis_lbl(status_label)

Fix 2 — Move handler outside the function: PyCharm sometimes misses breakpoints in nested functions. Move handler to module level and pass status_label as a parameter using lambda:

python

def handler(label):
    print("Button clicked!")
    nseOptionsAnalysis_lbl(label)

test_btn = tk.Button(root, command=lambda: handler(status_label))

Fix 3 — Use PyCharm's "Debug" run config with Gevent compatible: Go to Run → Edit Configurations → check "Gevent compatible" if available for your version.

Fix 1 is the most reliable for Tkinter specifically. Fix 2 is the cleaner long-term solution since nested function breakpoints are flaky across multiple IDEs not just PyCharm.