Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: PavelllG от Октября 04, 2011, 15:16



Название: QScrollArea QGlWidget как получить область видимости QGlWidget
Отправлено: PavelllG от Октября 04, 2011, 15:16
У меня задача выводить текстуру на  QGlWidget с возможностью маштабирования и сдвига.
Помещаю QGlWidget в QScrollArea по скроллеру увеличиваю или уменьшаю QGlWidget, но есть пробле6ма если QGlWidget скажем становиться более 8000 на 8000 OpenGl становиться плохо. Я хочу отслеживать видимый прямоугольник QGlWidget, и перерисовывать только его(glViewport(x0,y0,x1,y1); типа того), но как мне его получать, я что-то понять не могу.


Название: Re: QScrollArea QGlWidget как получить область видимости QGlWidget
Отправлено: vic_prog от Октября 04, 2011, 17:17
Я бы сделал следующее:

1. Взял-бы QWidget
2. На него положил QGLWidget, у которого ширина и высота QWidget - размер ScrollBar
3. На QWidget по кроям положил QScrollBar
4. Завел сигналы от QScrollBar-ов на управление viewport QGLWidget



Название: Re: QScrollArea QGlWidget как получить область видимости QGlWidget
Отправлено: PavelllG от Октября 04, 2011, 17:57
Тоже вариант, так даже местами проще навеное будет. Нашел метод
Widget->visibleRegion ();
Через него тоже вроде получаеться работать, можно получить rect главно


Название: Re: QScrollArea QGlWidget как получить область видимости QGlWidget
Отправлено: PavelllG от Октября 04, 2011, 18:01
Уменьшение области отрисовки OpenGl не помогает точно надо юзать скролбары=)