Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: fulkabaster от Июнь 14, 2009, 17:47



Название: QScrollArea + QGLWidget = глюк
Отправлено: fulkabaster от Июнь 14, 2009, 17:47
Создаю свой виджет, наследующий QGLWidget. Прикрепляю к нему QScrollArea, т.к. виджет может быть большим в зависимости от рисунка. Но иногда возникают глюки, например (в винде), при прокрутке бывает рисунок OpenGL вылезает вообще за область окна приложения и стирает собой рабочий стол и даже виндосовский таскбар.
У меня подозрение на неправильную работу QScrollArea. Вообще я с ним проковырялся долго, пока он не заработал хотя бы так. В мануале пример с ним простейший, когда QScrollArea является фактически главным виджетом приложения, у меня не так.

В общем, задачка такая. Есть главное окно, на нем только однин OpenGL-вский виджет - потомок QGLWidget. Нужно правильно прикрутить к нему полосы прокрутки, чтобы рисунок можно было смотреть, когда он не помещается в окне.
Методом экспериментирования я дошел до такого варианта - в конструкторе главного окна делаю так (plotter - openGL-вский виджет):

scrollArea = new QScrollArea;
scrollArea->setWidget(plotter);
this->setCentralWidget(scrollArea);
QGridLayout *layout = new QGridLayout;
layout->addWidget(plotter);
this->setLayout(layout);

Причем если не сделать layout, то не видно никакой области прокрутки. Равно как если не сделать и setCentralWidget.
Может быть я что-то упустил, еще какое-нить важное свойства области прокрутки не поднастроил. Как бы сделали вы, чтобы добиться той же цели?


Название: Re: QScrollArea + QGLWidget = глюк
Отправлено: rapaks от Август 03, 2010, 08:52
Столкнулся с такойже проблемой.
И еще несколько багов попутных обнаружил - в общем все они в версии 4.5.2 проявляются а в новой 4.6.2 их пофиксили.