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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Странность с координатами  (Прочитано 3039 раз)
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) я что то путаю с координатами сцены и родителей, что ли?
Записан
ufna
Гость
« Ответ #1 : Декабрь 27, 2010, 16:58 »

а можно код addEllipse(Xpryam,Ypryam,1.8,1.Крутой; ?
Записан
Morkonwen
Гость
« Ответ #2 : Декабрь 27, 2010, 17:08 »

А, это родная функция QGraphicsScene
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Декабрь 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.
Записан

Qt 5.11/4.8.7 (X11/Win)
Morkonwen
Гость
« Ответ #4 : Декабрь 27, 2010, 17:30 »

Это в примере я знаю XPryam в реальном коде нет.
А что значит смещение?
Я правильно что геометрия как бы создается внутри GraphicsItem и имеет координаты внутри нее. Как тогда взять внешние?
Записан
Morkonwen
Гость
« Ответ #5 : Декабрь 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());
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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