Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Июнь 18, 2014, 17:20



Название: QGLWidget - проблемы на OSX
Отправлено: Igors от Июнь 18, 2014, 17:20
Добрый день

В аттаче немного измененный пример 2dpainting. Красный виджет можно таскать, а QGLWidget вставлен в др такой же виджет. На Вындоуз все норм, красный перекрывает QGLWidget, и красный parent тоже нормально драгится. На OSX QGLWidget не появляется вообще. Если же у QGLWidget родитель просто окно (window_1.cpp) то он отображается но теперь красный не может его перекрыть. На обоих платформах юзал Qt 5.2. На OSX ситуевина та же и со старым Qt 4.7.4

Спасибо


Название: Re: QGLWidget - проблемы на OSX
Отправлено: Igors от Июнь 19, 2014, 11:59
Для полноты картины - вот скриншот  как тот же код ведет себя на OSX - QGLWidget ничем не перекрыть, хотя красный получает raise, можно только др окном - но не виджетом того же окна.

И в гугле ничего не видно по этому поводу :'(

Edit: да, еще - в измененном примере можно перебросить комменты одной строки - тогда вместо QGLWidget будет обычный, и поведение становится корректным/ожидаемым


Название: Re: QGLWidget - проблемы на OSX
Отправлено: Bepec от Июнь 19, 2014, 12:31
Оставил бы я у себя мак, попробовал бы.
Мб дело в порядке отрисовки? Дебаггером пройтись и посмотреть на реакцию бы.


Название: Re: QGLWidget - проблемы на OSX
Отправлено: Igors от Июнь 19, 2014, 15:01
И кстати о птичках: по крайней мере на OSX можно рисовать в QGLWidget без всякого paintEvent (makeCurrent - вызовы OpenGL - swapBuffers). Это довольно удобно - но все-таки грубейшее нарушение идеологии  :)


Название: Re: QGLWidget - проблемы на OSX
Отправлено: vulko от Июнь 20, 2014, 08:45
osx очень своеобразная ос.
opengl там может доставлять немало гемора...

если перекрытие нужно для прозрачности поверх gl сцены, советую перейти на qgraphicsscene


Название: Re: QGLWidget - проблемы на OSX
Отправлено: Bepec от Июнь 20, 2014, 09:06
ммм...
Ну тут всё уже ясно - glWidget перерисовывает себя. Ибо остальная часть виджета закрашена.