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. Может быть я что-то упустил, еще какое-нить важное свойства области прокрутки не поднастроил. Как бы сделали вы, чтобы добиться той же цели?
|