Название: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 17, 2010, 16:18 Доброго времени суток.
Подскажите пожалуйста, возможно ли средствами Qt и какими (если возможно) реализовать следующий эээ объект? (http://img33.imageshack.us/img33/5673/41673143.jpg) Исходная статья: http://forum.sources.ru/index.php?showtopic=272691 По собственному опыту были 2 идеи: 1) Реализовывать все это на QGraphicScene, но там я не нашел возможности трехмерной трансформации, т.е. повернуть тотже куб. 2) Использовать QGlWidget, но тут я пока не понимаю и не знаю, возможно ли создать куб так, чтобы на его сторонах размещались элементы управления. Заранее благодарен. Название: Re: Что использовать (виджеты 3D)? Отправлено: crossly от Август 17, 2010, 16:37 http://labs.trolltech.com/blogs/2008/12/02/widgets-enter-the-third-dimension-wolfenqt (http://labs.trolltech.com/blogs/2008/12/02/widgets-enter-the-third-dimension-wolfenqt)
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 17, 2010, 17:29 Спасибо большое. Чувствуется, приключение будет долгим :P
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 25, 2010, 15:17 Извиняюсь за возможно банальную проблему. Скачал исходник примера, указанного ссылкой предыдущего поста. На сколько понял, судя по строчке в одном из файлов
Код там используется библиотека 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' Код Вроде как не определены указанные функции, но вот где (в каком файле) они должны быть, я так и не понял. В самом glew.h последовательно имеются строчки (например): Код и на этом все. Если кто разбирался с этим примером, подскажите пожалуйста, как можно решить эту проблему. Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 15:19 как подключали либу? я собирал это дело под мак год назад:)
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 25, 2010, 15:26 Код: LIBS += C:\Qt\2010.02.1\qt\lib\glew32.lib \ Просто странно, что есть, например, вызовы glDrawArrays(GL_LINES, 0, points.size());, которые в том же glew.h описаны, но на них не ругается. Смею предположить, что либы все таки подключаются... Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 15:27 так, а либа каким компилером собрана? студийным? тогда не подцепиться из mingw
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 25, 2010, 15:29 Вот предполагал, что в этом может быть дело. Получается, что нужно в Qt собрать те либы? Если честно, не разбираюсь в аспекте компилляции различными компиляторами.
Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 15:33 ну во 1х есть собранные либы под студию на сайте нокии. Во вторых, можно попробовать пересобрать сам glew под мингв
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 25, 2010, 15:46 Ну поскольку пишу в креаторе, то я так понимаю, что нужно компилить при помощи mingw все таки?
Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 15:58 не обязательно, к креатору цепляется студийный компилятор спокойно
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 25, 2010, 16:41 Не подскажете, куда ткнуться почитать про "подцепление". Даже хз, чего у гугла спросить, просто :(
Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 17:53 указываете в профилях Qt студийный кумейк и всё... по идее:)
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 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.: Спасибо большое за помощь в разбирательстве :) Название: Re: Что использовать (виджеты 3D)? Отправлено: Авварон от Август 25, 2010, 19:28 вам нужно либо собрать Qt с помощью компилятора, либо скачать студийные либы с сайта Ноклы. Поставить эти либы, в профилях Qt в креаторе указать путь в qmake, который ставится вместе с либами. Всё
Название: Re: Что использовать (виджеты 3D)? Отправлено: Anarion от Август 26, 2010, 00:44 Спасибо большое, разобрался. Скачал Qt 4.6.3 для VS и создал профиль на основе тех либ.
Осталось понять как заставить виджеты вращаться, не изменяя точку обзора. Но. Не могу понять одного. Тот пример был опубликован в декабре 2008-го года и, как я понял, написан вроде как на Qt 4.5. В тоже время в коде была строчка, которая все равно выдавала ошибку: Код Если верить: http://doc.trolltech.com/4.7-snapshot/qgraphicswebview.html#resizesToContents-prop, то это свойство было введено в Qt 4.7. Как так? Они всмысле примеры обновляют периодически? |