QT overlapping camera window issue
-
We have an overlapping issue on QT widget windows. 3 camera windows are displayed in our main application. When we zoomed in one of the window, it displays full screen view. However, after approx. 10 minutes, we see other two camera windows on top of zoomed in window (overlapping). Attaching the screen shot for visualization.
Below is the code snippet for zoom-in and zoom-out functionality
//For making invisible background windows that were coming after zoom in
void MyCamera::zoomInCamera(uint cameraHandle, int camearachanelid)
{
//Start - For continuous clickingQApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); GstreamerStream *camHandle=NULL; if(CAMERA_HANDLE_VALID == isHandleValid(cameraHandle)) { camHandle = (GstreamerStream*)cameraHandle; camHandle->zoomInCameraThread(); QWidget *window = camHandle->getWindowObj(); window->setWindowState(window->windowState() ^ Qt::WindowActive); } for(int i=0;i<3;i++){ GstreamerStream *camHandleVar = (GstreamerStream*)m_CameraHandles[i]; if( cameraHandle != m_CameraHandles[i] ){ QWidget *window = camHandleVar->getWindowObj(); window->setUpdatesEnabled(false); //window->hide(); } } QApplication::restoreOverrideCursor();}
//Start - For showing invisible windows after zoom out
void MyCamera::zoomOutCamera(uint cameraHandle, int camearachanelid)
{
//Start - By - For continuous clicking
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
GstreamerStream camHandle=NULL;
if(CAMERA_HANDLE_VALID == isHandleValid(cameraHandle))
{
camHandle = (GstreamerStream)cameraHandle;
camHandle->zoomOutCameraThread();QWidget *window = camHandle->getWindowObj(); window->setWindowState(window->windowState() ^ Qt::WindowActive); } for(int i=0;i<3;i++){ GstreamerStream *camHandleVar = (GstreamerStream*)m_CameraHandles[i]; if( cameraHandle != m_CameraHandles[i] ){ QWidget *window = camHandleVar->getWindowObj(); //Added below line window->setUpdatesEnabled(true); window->setWindowState(window->windowState() ^ Qt::WindowActive); } } QApplication::restoreOverrideCursor();}
========================================================== I tried using setWindowState, setUpdatesEnabled API calls, but it is not working as per expected behaviour.How do I prevent the windows overlapping issue?