Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
32 / 30 / 4
Регистрация: 03.06.2010
Сообщений: 465
1

Работа с QGLWidget

08.09.2012, 18:53. Показов 2045. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно начинаю работать с QGLWidget и честно говря некоторые вещи не пойму. Читаю М. Шлее. Вопрос такой где может исполнятся код OpenGL? Если переопределять класс QGLWidget:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class MyClass : QGLWidget
{
 
public:
 
    MyClass(QWidget *pareny = 0) : QGLWidget(parent)
    {
    }
 
protected:
 
     void initializeGL()
     {
         // Set up the rendering context, define display lists etc.:
         ...
         glClearColor(0.0, 0.0, 0.0, 0.0);
         glEnable(GL_DEPTH_TEST);
         ...
     }
 
     void resizeGL(int w, int h)
     {
         // setup viewport, projection etc.:
         glViewport(0, 0, (GLint)w, (GLint)h);
         ...
         glFrustum(...);
         ...
     }
 
     void paintGL()
     {
         // draw the scene:
         ...
         glRotatef(...);
         glMaterialfv(...);
         glBegin(GL_QUADS);
         glVertex3f(...);
         glVertex3f(...);
         ...
         glEnd();
         ...
     }
    
 
}
Получается код OpenGL может исполняться только в paintGL()?
Обьясните пожалуйста что можно и как это все работает с инициализацией и изменениями размера окна.
МММ ещё один вопрос почему функция drawLine(x1,x2,y1,y2) не работает и Line(..) тоже не работает?
Пожалуйста обьясните это всё а то попал в болото, не знаю в какую сторону идти, в ассистенте смотрел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2012, 18:53
Ответы с готовыми решениями:

Работа с OpenGL не через QGLWidget
Доброго дня) собственно вопрос: каким образом можно отображать OpenGL графику, не используя...

[Qt] текст в QGLWidget
Пытаюсь вывести текст через renderText, всё получается. Но одна проблема. Текст при изменении окна...

Не рисуется в QGLWidget по кнопке
Есть класс glwindow наследующий QGLWidget. Подключаю его в классе основного окна mainwindow: ...

QPainter vs QGLWidget + OpenGL
Что из этого (указанного в названии темы) будет быстрее и на сколько быстрее?

2
18 / 15 / 0
Регистрация: 13.06.2011
Сообщений: 116
08.09.2012, 21:59 2
Я, если честно, не проверял, но opengl код должен работать везде. Просто пихать его в paintGL() - это рекомендация.
1
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
08.11.2012, 07:21 3
Цитата Сообщение от No10 Посмотреть сообщение
Получается код OpenGL может исполняться только в paintGL()?
ещё в resizeGL и initializeGL, причем, в спецификации рекомендовано всю подготовительную нагрузку переносить из конструктора в initializeGL. Перед вызовом этих функций объектная система открывает контекст рисования. Т. е. нельзя просто так взять и поменять glViewport, скажем, в mouseMoveEvent, нужно заготовить информацию, а вызывать сам вьюпорт уже в paintGL, хотя никто не мешает вызвать updateGL в mouseMoveEvent... Что там такое делает виджет перед вызовом упомянутых *GL функций я не разбирался, и как запросить открытие контекста тогда, когда это нужно, я не знаю. Если в процессе изучения попадётся такая информация - непременно кидайте сюда!
0
08.11.2012, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2012, 07:21
Помогаю со студенческими работами здесь

QGLWidget ничего не рисуется
Доброе время суток. Пытаюсь разобраться с OpenGL в Qt. Создал класс Scene3D отнаследованный от...

QGLWidget на главной форме
Добрый день. Как разместить этот виджет на главной форме? у меня есть class WOpenGL : public...

Рисуем QWidget поверх QGLWidget
Доброго времени суток. В окне приложения находится QGLWidget, занимающий все свободное...

Выбор элементов на сцене QGLWidget
Не могу найти внятной (понятной для идиота) статьи, посвященной выделению элементов в qt...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru