我在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中的一个按钮启动的(我也尝试在一个独立的测试中复制这种情况,但没有崩溃)。
有人知道发生了什么吗?
1条答案
按热度按时间wwwo4jvm1#
所以问题是你应该只从主线程与UI交互。也就是说,如果你打开
messagebox.showinfo
或在主线程以外的任何线程上执行任何UI操作,你应该预料到崩溃。