LINUX.ORG.RU

Система координат при использовании QGraphics

 


0

0

При добавлении первого объекта на сцену он всегда оказывается в координатах (0 ,0) объекта QGraphicsView. Все остальные объекты добавляются относительно его координат.
Подскажите как добавлять объекты сразу по нужным мне координатам.
Вот код добавления itemElips

void DrawGraf::draw_date_time(int number, QString date)
{
QPen *pen = new QPen();
pen->setBrush(Qt::blue);
pen->setStyle(Qt::SolidLine);
pen->setWidth(2);

QGraphicsItem sd= scene->addEllipse(number * 20,graphicsView->height()-20 +number,5,5,pen);

graphicsView->setScene(scene);
graphicsView->show();
}

Если задать сцене размеры, то при увеличении числа items не появляются полосы прокрутки(скорее всего Scene не изменяет свои размеры), однако если задать размерами нули, то полосы прокрутки появляются, однако координаты items не соответствуют заданным.

И ещё, никто не знает как поменять начало координат, что бы не в левом верхнем углу было, а в нижнем.
А то во всех документациях есть словосочетание «по умолчанию» относящееся к началу координат, но найти как их поменять не могу.



Последнее исправление: kvazar2 (всего исправлений: 1)

Ответ на: комментарий от fluorite

За вторую ссылку спасибо.

А вот остальное я уже много раз перечитывал.

Из имеющейся у меня информации, я так понял, что если задать SceneRect(0,0,0,0) то сцена будет менять свой размер автоматически, но при добавлении первого item на сцену, она ведёт себя крайне неадекватно располагая его всегда в координатах (0;0) и никто не может внятно сказать как с этим бороться.

А вот если задавать сцене начальный размер, то неадекватности в расположении item нет, однако размер сцены приходится регулировать вручную.

kvazar2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.