Ask Your Question

Block until window closed

asked 2020-07-24 10:15:40 -0500

kbarni gravatar image

I would like to display a window, and block the program execution until the user decides to continue. This is done normally the following way:

Mat img1,img2;

The only problem with this approach is if the user instinctively closes the window using the X button. Then, as no HighGUI windows are active, waitKey() will never return and the program blocks.

Is there any solution, so the program waits a keypress OR the window to be closed?

edit retag flag offensive close merge delete


hi @kbarni. what is your OpenCV version and OS?. in Windows with latest OpenCV here your code works flawlessly.

sturkmen gravatar imagesturkmen ( 2020-07-24 12:57:18 -0500 )edit
sturkmen gravatar imagesturkmen ( 2020-07-24 13:17:33 -0500 )edit

I'm using Ubuntu and OpenCV 4.3. I have to check on windows...

kbarni gravatar imagekbarni ( 2020-07-27 10:08:49 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2020-07-24 11:04:58 -0500

mvuori gravatar image

updated 2020-07-27 10:04:43 -0500

kbarni gravatar image

A minute of googling could have made you find out that you can use getWindowProperty() to check whether the window is ok:

[EDIT] in case of link becomes unavailable, here's the relevant part of the article: you can check if the window is still open using the WND_PROP_VISIBLE propoerty of the window. So the waitKey() line becomes:

while( (chr<0) && (getWindowProperty("Image1",WND_PROP_VISIBLE)) ){ chr=waitKey(100); }
edit flag offensive delete link more


yeah googling is good sometimes. but doesn't help spreading knowledge. at least me. i learned something new. and the most important thing is sometimes a question seems unnecessary will help some improvements on the library.

sturkmen gravatar imagesturkmen ( 2020-07-24 13:04:34 -0500 )edit

Question Tools

1 follower


Asked: 2020-07-24 10:15:40 -0500

Seen: 135 times

Last updated: Jul 27 '20