Assuming you’re using opencv-python, I’d post query at https://github.com/opencv/opencv-python/issues.
From: Python-list <python-list-bounces+gweatherby=uchc....@python.org> on behalf of John O'Hagan <resea...@johnohagan.com> Date: Tuesday, March 14, 2023 at 6:56 AM To: Python list <python-list@python.org> Subject: Tkinter and cv2: "not responding" popup when imshow launched from tk app *** Attention: This is an external email. Use caution responding, opening attachments or clicking on links. *** Hi list I'm trying to use cv2 to display images created as numpy arrays, from within a tkinter app (which does other things with the arrays before they are displayed as images). The arrays are colour-coded visualisations of genomes and can be over a billion elements in size, and I've found the PIL methods to display images in tkinter are too slow and memory-heavy. Here is minimal code that demonstrates the problem in the subject line: import cv2 from tkinter import * images=['a.jpg', 'b.jpg', 'c.jpg'] #change to image paths cv2.namedWindow('W', cv2.WND_PROP_FULLSCREEN) cv2.setWindowProperty('W', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) counter=[0] def show(): cv2.imshow('W', cv2.imread(images[counter[0] % len(images)])) cv2.waitKey(1) counter[0] += 1 root=Tk() root.wm_attributes("-topmost", 1) Button(root, text=' Show ', command=show).pack() mainloop() It works up to a point - I can cycle through the images by clicking the button - but if I mouse-click on the displayed image (e.g. to use the zooming and panning features of cv2), nothing happens, and a few seconds later the image greys out and a popup appears saying "'Unknown' is not responding" and giving the option of waiting or forcing close (but sometimes these options are greyed out too). Clicking "wait", if available, closes the popup but it comes back a few seconds later. If I then click on the tkinter window titlebar, the popup changes to "'Tk' is not responding". Clicking on the button still works and after a few clicks the popup closes. This happens under both x11 and wayland, but under wayland, I also get this error: "QSocketNotifier: Can only be used with threads started with QThread qt.qpa.wayland: Wayland does not support QWindow::requestActivate()" and only every second button press displays a new image ,with only every second image displayed. I think this particular popup is a Gnome thing, but AIUI most DEs have something similar to detect stuck apps. But the app is not stuck. I suspect this is some kind of interaction between the call to cv2.waitKey (which is necessary but I've never understood why!) and the tkinter event loop, but it's beyond my knowledge. Any suggestions about causes or workarounds? Thanks -- John -- https://urldefense.com/v3/__https://mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!iHFg1AtgcwsfEeHXaH_Nasebf9SGreVlDs-DevEIQbFiwUQThx-_rah1QkSHRJEotJFyd-d6OCQ3GuQa1MxvsnGA$<https://urldefense.com/v3/__https:/mail.python.org/mailman/listinfo/python-list__;!!Cn_UX_p3!iHFg1AtgcwsfEeHXaH_Nasebf9SGreVlDs-DevEIQbFiwUQThx-_rah1QkSHRJEotJFyd-d6OCQ3GuQa1MxvsnGA$> -- https://mail.python.org/mailman/listinfo/python-list