Russian Qt Forum
Сентябрь 30, 2024, 14:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Что использовать (виджеты 3D)?  (Прочитано 8833 раз)
Anarion
Гость
« : Август 17, 2010, 16:18 »

Доброго времени суток.
Подскажите пожалуйста, возможно ли средствами Qt и какими (если возможно) реализовать следующий эээ объект?


Исходная статья:
http://forum.sources.ru/index.php?showtopic=272691

По собственному опыту были 2 идеи:
1) Реализовывать все это на QGraphicScene, но там я не нашел возможности трехмерной трансформации, т.е. повернуть тотже куб.
2) Использовать QGlWidget, но тут я пока не понимаю и не знаю, возможно ли создать куб так, чтобы на его сторонах размещались элементы управления.

Заранее благодарен.
« Последнее редактирование: Август 17, 2010, 16:23 от Anarion » Записан
crossly
Гость
« Ответ #1 : Август 17, 2010, 16:37 »

http://labs.trolltech.com/blogs/2008/12/02/widgets-enter-the-third-dimension-wolfenqt
Записан
Anarion
Гость
« Ответ #2 : Август 17, 2010, 17:29 »

Спасибо большое. Чувствуется, приключение будет долгим  Показает язык
Записан
Anarion
Гость
« Ответ #3 : Август 25, 2010, 15:17 »

Извиняюсь за возможно банальную проблему. Скачал исходник примера, указанного ссылкой предыдущего поста. На сколько понял, судя по строчке в одном из файлов
Код
C++ (Qt)
#include <GL/glew.h>
там используется библиотека glew.
Скачал бинарники для win-32 с http://glew.sourceforge.net,
*.h файлы(glew.h, glxew.h, wglew.h), включая glew.h, поместил в каталог C:\Qt\2010.02.1\qt\include\GL.
Либы подключил в проектном файле, через LIBS +=.
glew32.dll куда только не втыкал.

При компилляции получаю ошибки:
Код:
undefined reference to `_imp____glewEnableVertexAttribArray'
undefined reference to `_imp____glewVertexAttribPointer'
undefined reference to `_imp____glewDisableVertexAttribArray'
Ругается, соответственно на вызовы в программе:
Код
C++ (Qt)
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (float *)m_points.data());
glDisableVertexAttribArray(0);
Вроде как не определены указанные функции, но вот где (в каком файле) они должны быть, я так и не понял. В самом glew.h последовательно имеются строчки (например):
Код
C++ (Qt)
#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray)
GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray;
и на этом все.

Если кто разбирался с этим примером, подскажите пожалуйста, как можно решить эту проблему.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Август 25, 2010, 15:19 »

как подключали либу? я собирал это дело под мак год назад:)
Записан
Anarion
Гость
« Ответ #5 : Август 25, 2010, 15:26 »

Код:
LIBS += C:\Qt\2010.02.1\qt\lib\glew32.lib \
            C:\Qt\2010.02.1\qt\lib\glew32s.lib

Просто странно, что есть, например, вызовы glDrawArrays(GL_LINES, 0, points.size());, которые в том же glew.h описаны, но на них не ругается. Смею предположить, что либы все таки подключаются...
« Последнее редактирование: Август 25, 2010, 15:28 от Anarion » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #6 : Август 25, 2010, 15:27 »

так, а либа каким компилером собрана? студийным? тогда не подцепиться из mingw
Записан
Anarion
Гость
« Ответ #7 : Август 25, 2010, 15:29 »

Вот предполагал, что в этом может быть дело. Получается, что нужно в Qt собрать те либы? Если честно, не разбираюсь в аспекте компилляции различными компиляторами.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #8 : Август 25, 2010, 15:33 »

ну во 1х есть собранные либы под студию на сайте нокии. Во вторых, можно попробовать пересобрать сам glew под мингв
Записан
Anarion
Гость
« Ответ #9 : Август 25, 2010, 15:46 »

Ну поскольку пишу в креаторе, то я так понимаю, что нужно компилить при помощи mingw все таки?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Август 25, 2010, 15:58 »

не обязательно, к креатору цепляется студийный компилятор спокойно
Записан
Anarion
Гость
« Ответ #11 : Август 25, 2010, 16:41 »

Не подскажете, куда ткнуться почитать про "подцепление". Даже хз, чего у гугла спросить, просто  Грустный
« Последнее редактирование: Август 25, 2010, 16:50 от Anarion » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #12 : Август 25, 2010, 17:53 »

указываете в профилях Qt студийный кумейк и всё... по идее:)
Записан
Anarion
Гость
« Ответ #13 : Август 25, 2010, 18:54 »

Есть у меня предположение, что я окончательно запутался. Если я сейчас все правильно понимаю, то:
1) Либы прилагаемые в бинарниках glew собраны студийным компилятором (даже проект студийный в тех исходниках нашел и собрал 2005-й студией).
2) В креаторе используется компилятор mingw, который не хочет работать с либами, собранными при помощи студийного компилятора (если правильно понял, называеся msvc).
3) Чтобы это заработало, нужно
3.1) либо скомпилить исходники glew из креатора компилятором mingw, но там нету *.pro файла (подозреваю, что можно как-то чего-то вручную раскидать и получить нужный проект и сам *.pro файл, но с этим ни разу не сталкивался, так что пока опыта нет).
3.2) либо собрать этот пример опять же в креаторе, но в качестве компилятора указать студийный (поскольку точно не пойму как называется, не знаю, чего искать).
3.3) Вариант из области теории. В студии собрать либы используя компилятор mingw из папки с Qt.
Про студийный qmake не понял Грустный Поиск по её директории дал только пару файлов nmake.exe

P.S.: Студию дико нинавижу, поэтому мои познания в ней ничтожны, делал 20 лаб в универе и усе.
P.P.S.: Спасибо большое за помощь в разбирательстве  Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #14 : Август 25, 2010, 19:28 »

вам нужно либо собрать Qt с помощью компилятора, либо скачать студийные либы с сайта Ноклы. Поставить эти либы, в профилях Qt в креаторе указать путь в qmake, который ставится вместе с либами. Всё
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.224 секунд. Запросов: 23.