2013-06-25 2 views
2

Я новичок в Qt и пытаюсь настроить среду Qt5 на работу с виджетами OpenGL. Я следил за несколькими учебниками и лакомыми кусочками в Интернете, но ничего не работает. Я создал окно в конструкторе, а затем вручную добавил свой собственный подкласс QGLWidget в макет окна (в соответствии с инструкциями). Я заполнил функции paintGLinitializeGL и resizeGL. Я раньше использовал glut glew, поэтому я бросил glew в путь сборки для Qt. Я узнал, что для использования glew с Qt вы не должны включать заголовки Qt OpenGL. Я также определил QT_NO_OPENGL_ES и QT_NO_OPENGL_ES_2.Qt не создает контекст OpenGL

Однако, независимо от того, что я делаю, я не могу получить свое окно, чтобы отображать что-либо, кроме черного - оно даже не очистится до цвета. Кроме того, у меня есть несколько операторов печати в моем классе виджетов, чтобы указать версии OpenGL и GLSL, но ничего не печатает, пока я не выйду из окна. Оттуда я получаю ошибку Glew «Отсутствует версия GL». Обновление: Я не могу сказать, связано ли это с наличием разных окон (с которыми я незнаком) или если эти методы странно просто не вызываются, пока я не закрою окно (почему?).

Я пробовал различные комбинации советов со всех сторон, но ничего не помогло. Все, что я хочу, это возможность использовать обновленную версию (4.2 на моем компьютере) OpenGL и Qt (для виджетов).

Технические характеристики:

  • Qt 5
  • Mingw компилятор
  • Windows 7
  • Glew в настоящее время связаны статически (.a)
+0

Не указывайте «QT_NO_OPENGL_ES», это выбрано во время настройки. На какой платформе вы работаете, используя версию Qt (и как вы ее установили)? – peppe

+0

@peppe Я обновил свой вопрос. – GraphicsMuncher

ответ

0

Я не знаю, которым платформа вы, но у меня были те же проблемы с созданием простого приложения с QGLWidget (ничего не происходит), и я написал небольшой путеводитель, который надеется, что он вам поможет.

Так что я предлагаю вам новую установку. Я никогда не использовал glew, так что мое решение было бы без него.

Если вам необходимо исправить текущую настройку, не читайте, что будет дальше.

Легкий способ:

1: Установка кварты-Windows-5.0.2-с открытым исходным кодом-msvc2010_32_opengl-x86-форума

2: Установка Visual Studio Express от Microsoft (бесплатно, нам нужен его компилятор)

3: Убедитесь, что у вас есть glu32.dll, glut32.dll, opengl32.DLL в Windows/system32 и окна/Syswow64

4: набор в Qt в MSVC x86 компилятор

Hard Way:

Если вы используете VS2012 компилятора и вы хотите использовать его вот так (вы должны перекомпилировать QT):

1: Установка QT-окна-5.0.1-с открытым исходным кодом-mingw47_32-x86-форума (во время установки проверьте голос "Souce")

2: Установка Visual Studio Express от Microsoft (бесплатно, нам нужно его компилятор)

3: Установить Strawberry Perl 5.16.3.1 (32bit)

4: Создать новый Папка, как C: \ Qt \ Qt5.0.1 \ 5.0.1 \ Src \ NuovaCartella

5: команда Open VS2012 x86 и поместите его в папку, созданную

6: Вставьте этот

C: \ Qt \ Qt5.0.1 \ 5.0.1 \ Src \ qtbase \ конфигурирования -developer-сборки -opensource -nomake примеры -nomake тесты -opengl рабочего стола -mp

7: NMAKE подтверждают

8: Убедитесь, что у вас есть glu32.dll, glut32.dll, opengl32.dll в окна/system32 и окна/Syswow64

9: Открыть

Qt-> Tools-> Options-> Build & Подвижная> QtVersion-> Добавить

и установить QMAKE что и можно найти в C: \ Qt \ Qt5.0.1 \ 5.0.1 \ Src \ NuovaCartella \ Bin

10: Перейти к

Options-> Build & Подвижной> Kits-> Добавить

и набор C++ компилятор v11.0 x86 и под ярлыком QtVersion установить Qt 5.0.1 (NuovaCartella)

Надеется, что это помогает.

+0

К сожалению, я использую gcc (mingw32) и статические, а не динамические библиотеки (т.е. .a).Вы знаете, что проблема с корнем заключается в том, что вы исправили? – GraphicsMuncher

+0

Несомненно, основная проблема заключалась в том, что у меня нет файлов OpenGL .dll в системах 32 и syswow64. – Nicola

+0

Решением было установить версию Qt для opengl. – GraphicsMuncher