Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Morkonwen от Декабрь 27, 2010, 16:51



Название: Странность с координатами
Отправлено: Morkonwen от Декабрь 27, 2010, 16:51
Помогите пожалуйста

Код:
qreal Xpryam,Ypryam;
//инициализация

QGraphicsItem *Obj=addEllipse(Xpryam,Ypryam,1.8,1.8);

addText(QString("Hi!"))->setPos(Obj->x(),Obj->y());

Независимо от Xpryam и Ypryam текст рисует на сцене в (0,0) я что то путаю с координатами сцены и родителей, что ли?


Название: Re: Странность с координатами
Отправлено: ufna от Декабрь 27, 2010, 16:58
а можно код addEllipse(Xpryam,Ypryam,1.8,1.8); ?


Название: Re: Странность с координатами
Отправлено: Morkonwen от Декабрь 27, 2010, 17:08
А, это родная функция QGraphicsScene


Название: Re: Странность с координатами
Отправлено: GreatSnake от Декабрь 27, 2010, 17:11
Читай внимательно описание QGraphicsScene::addEllipse() в ассистенте

Цитировать
Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

Поэтому двигай эллипс так:

Код
C++ (Qt)
Obj->setPos( Xpryam,Ypryam );

Ну и при создании эллипса сбрось смещение в 0.


Название: Re: Странность с координатами
Отправлено: Morkonwen от Декабрь 27, 2010, 17:30
Это в примере я знаю XPryam в реальном коде нет.
А что значит смещение?
Я правильно что геометрия как бы создается внутри GraphicsItem и имеет координаты внутри нее. Как тогда взять внешние?


Название: Re: Странность с координатами
Отправлено: Morkonwen от Декабрь 28, 2010, 02:09
Аа, понял что мне ответили. у любого эллипса начальные координаты его "основной точки" (0,0) в сцене, хотя сам он появляется там где ты пишешь. Так вот надо создать его надо так, что бы центр круга совпал с началом координат сцены. Только потом сдвигать его!

Код:
QGraphicsItem *Obj=addEllipse( -0.9,-0.9,1.8,1.8);
Obj->setPos(Xpryam,Ypryam);
addText(QString("Hi!"))->setPos(Obj->x(),Obj->y());