tkinter.root.destroy和cv2.imshow-X Windows系统错误



我发现了这个相当烦人的错误,在opencv网站上除了一个未回答的问题外,我找不到其他任何东西,希望对这两个库有更多了解的人能够为我指明正确的方向。我不会提供代码,因为这与了解崩溃原因无关。

如果我画了一个tkinter窗口,然后root.destroy()它,那么一旦cv2.waitKey延迟结束,尝试画一个cv2.imshow窗口将导致X窗口系统错误。我尝试过以不同的方式进行复制,但总是会出现错误(error_code 3 request_code 15 minor_code 0)。

值得注意的是,root.quit()命令不会引起同样的问题(据我所知,这种方法只会退出主循环,而不是破坏小部件)。此外,虽然任何cv2.imshow调用都会失败,但尝试绘制新的tkinter窗口也可以。

这两个图书馆正在共享哪些资源?root.destroy()在X环境中会导致什么阻止绘制任何cv2窗口?

Debian Jessie-Python 3.4-OpenCV 3.2.0

当您销毁根窗口时,它也会销毁所有子窗口。如果cv2使用tkinter窗口或根窗口的子窗口,那么如果您破坏根窗口,它将失败。

最新更新