tkinter.root.destroy и cv2.imshow - X системная ошибка Windows - PullRequest
0 голосов
/ 22 января 2019

Я нашел эту довольно досадную ошибку и не смог найти ничего, кроме вопроса без ответа, на сайте opencv, надеюсь, кто-то, имеющий больше знаний о двух библиотеках, сможет указать мне правильное направление.Я не буду предоставлять код, потому что это не относится к вопросу о том, что вызывает сбой.

Если я нарисую окно tkinter, а затем root.destroy(), попытка нарисовать окно cv2.imshow приведет кОшибка X Window System, как только задержка cv2.waitKey закончилась.Я пытался выполнить репликацию по-разному, и это всегда приводит к ошибке (код ошибки 3, код запроса 15, код второстепенного 0).

Стоит отметить, что команда root.quit() не вызовет ту же проблему (так какНасколько я понимаю, этот метод просто выйдет из основного цикла, а не уничтожит виджеты).Кроме того, хотя любой вызов cv2.imshow не удастся, попытка нарисовать новое окно tkinter будет работать очень хорошо.

Какие ресурсы распределяются между двумя библиотеками?Что root.destroy() вызывает в среде X предотвращение прорисовки любого окна cv2?

Debian Jessie - Python 3.4 - OpenCV 3.2.0

1 Ответ

0 голосов
/ 22 января 2019

Когда вы уничтожаете корневое окно, оно также уничтожает все дочерние окна. Если cv2 использует окно tkinter или дочернее окно корневого окна, произойдет сбой, если вы уничтожите корневое окно.

...