Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: vregess от Ноябрь 02, 2012, 14:29



Название: QWidget рядом с QGraphicsView
Отправлено: vregess от Ноябрь 02, 2012, 14:29
Добавляю в QStackedWidget 2 виджета: QGraphicsView и QWidget. По сигналу меняю текущий виджет.
Проблема: если используется QGLWidget для рендеринга QGraphicsView, то в полноэкранном режиме не отображается QWidget, если его сделать активным.
Те изначально активен QGraphicsView, потом посылаем сигнал и делаем активным QWidget. В результате на экране также отрисовывается QGraphicsView.

Предыстория: изначально мне нужно было показывать видео в QGraphicsView. Использую qt-vlc. Но запихнуть видео виджет на сцену через QGraphicsProxyWidget не получается,
тк qt-vlc использует Qt::WA_PaintOnScreen, что не поддерживается. Пробовал рисовать фреймы сам на QGraphicsWidget, но получается медленно. Поэтому решил использовать
обычный QWidget на вкладке и делать его видимым. Но вот для полноэкранного режима с OpenGL вылезла проблема.

Прикладываю пару примеров, иллюстрирующих проблему:
На сцене 2 квадрата - один переключает фулскрин, второй показывает черный QWidget.

ex1 - пример с использованием QStackedWidget. При запуске можно указать ключ -nogl, чтобы использовать software rendering.
Тут в полноэкранном режиме QWidget не отображается.

ex2 - с использованием QTabWidget. Ключи -nogl и -notabs, который скрывает табы.
Тут с ключом -notabs таже проблема, а при отображении табов все ок.

Как победить, куда копать?


Название: Re: QWidget рядом с QGraphicsView
Отправлено: vregess от Ноябрь 03, 2012, 20:36
Забыл сказать. Qt 4.8.3 x32, Win7 x64, msvc2010.