Виджет похожий на Compiz. |
Здравствуйте, гость ( Вход | Регистрация )
Виджет похожий на Compiz. |
igor_bogomolov |
21.3.2010, 3:57
Сообщение
#1
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Задумал я сделать виджет (или layout) в виде вращающегося кубика, каждая грань которого - это тоже виджет. Т.е. что то вроде Compiz, только чтобы его можно было разместить в приложении. Начал с начала с OpenGL, т.к. compiz его и использует. Но дальше отрисовки самого кубика дело не дошло т.к. не имею ни малейшего представления как разместить на его грани виджет.
Затем попытался реализовать это на графической сцене + анимация, вроде весь необходимый функционал для этого есть. Все получалось, пока не добрался до такой проблемы: метод Цитата QGraphicsRotation::setOrigin ( const QVector3D & point ) который устанавливает точку вращения в 3D-пространстве игнорирует Z координату. В общем, я в тупике. У кого какие мысли по этому поводу, как можно это реализовать? P.S. Простенький пример, который поворачивает QTextEdit на сцене в 3D, в приложении. Там сразу видна проблема с setOrigin.
Прикрепленные файлы
|
|
|
kwisp |
23.3.2010, 10:33
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
может баг?
хотя в баг листе ничего не нашел даже по QGraphicsRotation может новый баг? |
|
|
igor_bogomolov |
23.3.2010, 11:17
Сообщение
#3
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
может баг? Черт его знает. А ты код не смотрел, может я просто что-то делаю неправильно?На самом деле я сейчас вернулся к варианту отрисовки через OpenGL. Создаю сцену и в качестве viewport устанавливаю QGLWidget. Сам куб - это переопределенный QGraphicsItem с перекрытым методом paint. Отрисовка в paint так же происходит средствами OpenGL. Т.о. удалось хотя бы добиться красивого отображения, да и вращением легко управлять. Осталось разобраться как контекст рисования виджетов перенаправить на поверхность этого куба. Пока идей нет На данный момент использую grubWidget и устанавливаю полученное изображение в качестве текстуры для кубика. Но такой вариант меня не устраивает. |
|
|
molchanoviv |
23.3.2010, 11:41
Сообщение
#4
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
Где-то на сайте троллей проскакивал ролик в котором показывалось как выставить виджет на ГЛ поверхность.
|
|
|
igor_bogomolov |
23.3.2010, 22:06
Сообщение
#5
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Где-то на сайте троллей проскакивал ролик в котором показывалось как выставить виджет на ГЛ поверхность. Случаем не это имел в виду (тык). Где исходнички этого можно взять, никто не знает? |
|
|
Litkevich Yuriy |
23.3.2010, 23:15
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
igor_bogomolov |
24.3.2010, 18:46
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
SABROG |
24.3.2010, 23:50
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Грубо говоря вместо координаты Z можно использовать scale?
|
|
|
igor_bogomolov |
24.3.2010, 23:59
Сообщение
#9
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Грубо говоря вместо координаты Z можно использовать scale? Как то у меня пока пространственного воображения для этого не хватает. Надо будет поэкспериментировать. Мне вот что интересно: багу мою отклонили, но ведь в документации написано Цитата origin : QVector3D Вводит в заблуждение
This property holds the origin of the rotation in 3D space. |
|
|
Текстовая версия | Сейчас: 30.1.2025, 4:37 |