crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QGraphicsItem + QGraphicsView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
crashsp Дата 26.11.2010, 7:36
  Спасибо! буду смотреть разбираться
ufna Дата 26.11.2010, 7:18
  Бери у айтема также данные из transform(), учитывай scale - отсюда получишь координаты виджета в координатах родителя.

Дело в том, что трансформация - очень хитрая штука, работающая именно в координатах самого айтема, а не родителя. Просто проследи логику изменения именно в таком ключе.
crashsp Дата 26.11.2010, 6:33
 
Цитата(ufna @ 25.11.2010, 21:50) *
Там же есть setPos(), зачем так сложно?

Ну дело в том что я нашел в demo пример embeddeddialogs там используется QTimeLine и хотел реализовать что то подобное только перемещать виджеты по кругу ну вот там и используется setTransform
Идея была в том : я имею вспомогательный эллипс , для себя разделил его на шесть секторов, соответственно есть шесть виджетов каждый расположен в секторе, нажимаю вправо виджеты по кругу перемещаются на один сектор назад или вперед, соответственно чем виджет дальше или ближе их масштабировал функцией scale все в той же setTransform и виджеты плавно двигаются по кругу
Реализовать идею не получилось так как не смог выяснить на какой координате в данный момент находятся виджеты
По видимому вся идея не правильна, вот и отсюда все сложности

Цитата
Виджет сместился в своих собственных координатах, но в родительских - остался на прежнем месте

Вот это я как раз не могу понять
Как это все можно реализовать наиболее компактно и понятно )?
Благодарю..
ufna Дата 25.11.2010, 20:50
  Ну тут дело в том, что есть Transform. Виджет сместился в своих собственных координатах, но в родительских - остался на прежнем месте.

Там же есть setPos(), зачем так сложно?
crashsp Дата 25.11.2010, 18:57
  Доброго времени суток
Не могу понять и разобраться, дело вот в чем :
есть элемент QGraphicsProxyWidget скажем p_wgt, делаю вот так p_wgt->moveBy(500,220) сразу смотрю позицию все окей 500,200
после делаю вот так p_wgt->setTransform(QTransform().translate(375,-15)) физически элемент оказывается в другой точки,но функция
p_wgt->pos() возвращает ту же позицию... вот и вопрос : какие координат перемещает translate или чьи ?? в доках как я понял написано что системные, из чего я не смог сделать для себя не какой вывод так как я вроде обращаюсь к элементу
Подскажите что я не так понял или сделал??
Благодарю....
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 18:40