python Tkinter消息框崩溃:进程结束,退出代码为133(被信号5中断:信号捕获器)

wnrlj8wa  于 2023-01-29  发布在  Python
关注(0)|答案(1)|浏览(288)

我在MacOS Monterey 12.2.1,python 3.8.13上使用tkinter.messagebox时出现了一个难以复制的崩溃。
当我使用Process finished with exit code 133 (interrupted by signal 5: SIGTRAP)调用messagebox.showinfo(...)messagebox下的任何函数时,大约50%的时间系统崩溃
崩溃的代码:

print("Interpreter gets here")
messagebox.showinfo(message="No detections to export.  Select one with a completed scan to export", title='aa')
print("But never gets here - it crashes with Process finished with exit code 133 (interrupted by signal 5: SIGTRAP)Process finished with exit code 133 (interrupted by signal 5: SIGTRAP)")

已知事实:

  • 我尝试过独立地复制它,但无法让它在我的程序上下文之外崩溃。
  • 一半的时候会死机。
  • messagebox.showinfo(...)从一个线程中调用,该线程是通过单击UI中的一个按钮启动的(我也尝试在一个独立的测试中复制这种情况,但没有崩溃)。

有人知道发生了什么吗?

wwwo4jvm

wwwo4jvm1#

所以问题是你应该只从主线程与UI交互。也就是说,如果你打开messagebox.showinfo或在主线程以外的任何线程上执行任何UI操作,你应该预料到崩溃。

相关问题