Я работаю над обновлением приложения для клиента.
Они используют Qt и в настоящее время используют QGLWidget для отображения в полноэкранном режиме 1 из 4 возможных камер, выбранных щелчком соответствующего переключателя. Затем они используют OpenGL для рисования на отображаемом изображении. Это отлично работает, но они хотят обновить пользовательский интерфейс, чтобы включить четырехкратное представление всех 4 камер.
Моя первая мысль о том, как этого добиться, заключалась в том, чтобы оставить один виджет QGLWidget для полноэкранного отображения и иметь 4 небольших виджета QGLWidget для разделения на квадраты. Из документации я обнаружил, что вы не можете перекрывать QGLWidgets или QOpenGLWidgets, потому что они не обрабатывают z-порядок должным образом, но это можно сделать с помощью QOpenGLWindows и QWidget :: createWindowContainer.
Итак, я закодировал приложение, которое использует QOpenGLWidget (пытается обновить их) для полноэкранного просмотра и 4 меньших QOpenGLWindows с помощью QWidget :: createWindowContainer, но это тоже не работает.
Виджеты, созданные из QOpenGLWindows, всегда находятся наверху, даже если я использую lower (), чтобы попытаться разместить их за полноэкранным QOpenGLWidget. Я также пробовал использовать hide () для виджетов, созданных из QOpenGLWindows, однако это не повлияло.