crossplatform.ru

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


  Ответ в НАХОЖДЕНИЕ КООРДИНАТ ЭЛЕМЕНТА
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Trisch Дата 5.2.2012, 18:53
 
Цитата(wiz29 @ 1.2.2012, 9:08) *
Цитата(Trisch @ 1.2.2012, 4:01) *
Думаю надо как-то преобразовать координаты. А вот как это сделать, ума не приложу(((((


Координаты преобразовывать не нужно, если ты используешь scenePos. Просто по умолчанию все размещенные тобой элементы имеют позицию QPointF(0.0, 0.0), поэтому и получаются нули при считывании. Если же задать, после создания каждого элемента, его позицию отличной от QPointF(0.0, 0.0), тогда получится результат отличный от нулей )


Я сделал так:
 for(int i = 0; i < node; i++)
    {
        QGraphicsEllipseItem *pEllipseItem =
                pScene->addEllipse( 0, 0 ,r_m ,r_m,
                                   QPen(Qt::red), QBrush(Qt::red));
        pEllipseItem->setX(oX + c*r*cos(i*z+M_PI/2));
        pEllipseItem->setY(oY + c*r*sin(i*z+M_PI/2));
        pEllipseItem->setFlags(QGraphicsItem::ItemIsMovable);
    }


все работает))) Спасибо)



wiz29 Дата 1.2.2012, 8:08
 
Цитата(Trisch @ 1.2.2012, 4:01) *
Думаю надо как-то преобразовать координаты. А вот как это сделать, ума не приложу(((((


Координаты преобразовывать не нужно, если ты используешь scenePos. Просто по умолчанию все размещенные тобой элементы имеют позицию QPointF(0.0, 0.0), поэтому и получаются нули при считывании. Если же задать, после создания каждого элемента, его позицию отличной от QPointF(0.0, 0.0), тогда получится результат отличный от нулей )
Trisch Дата 1.2.2012, 3:01
 
Цитата(wiz29 @ 31.1.2012, 8:24) *
QGraphicsEllipseItem * QGraphicsScene::addEllipse ( const QRectF & rect, const QPen & pen = QPen(), const QBrush & brush = QBrush() )

вот что написано к этой функции:

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

Делай выводы.


Думаю надо как-то преобразовать координаты. А вот как это сделать, ума не приложу(((((
wiz29 Дата 31.1.2012, 7:24
  QGraphicsEllipseItem * QGraphicsScene::addEllipse ( const QRectF & rect, const QPen & pen = QPen(), const QBrush & brush = QBrush() )

вот что написано к этой функции:

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

Делай выводы.
Trisch Дата 30.1.2012, 23:49
 
Цитата(wiz29 @ 30.1.2012, 15:18) *
Цитата(Trisch @ 30.1.2012, 14:47) *
тот же результат(


А элементы каким образом размещаются?


вот фрагмент кода размещения элементов:
    for(int i = 0; i < node; i++)
    {
        QGraphicsEllipseItem *pEllipseItem =
                pScene->addEllipse(QRectF( (oX + r*cos(i*z+M_PI/2)) , (oY + r*sin(i*z+M_PI/2)) ,r_m ,r_m),
                                   QPen(Qt::red), QBrush(Qt::red));
        pEllipseItem->setFlags(QGraphicsItem::ItemIsMovable);
    }
wiz29 Дата 30.1.2012, 14:18
 
Цитата(Trisch @ 30.1.2012, 14:47) *
тот же результат(


А элементы каким образом размещаются?
Trisch Дата 30.1.2012, 13:47
 
Цитата(wiz29 @ 30.1.2012, 13:16) *
QPointF QGraphicsItem::scenePos () const тебе в помощь


То-есть так?
q = pItem->scenePos().x();

тот же результат(
wiz29 Дата 30.1.2012, 13:16
  QPointF QGraphicsItem::scenePos () const тебе в помощь
Trisch Дата 30.1.2012, 12:58
  мне надо получить все координаты элементов, которые находятся на сцене

Я думал сделать так:
//---
    double q;
    QList<QGraphicsItem*> items = graphicsView->scene()->items();

    QList<QGraphicsItem*>::iterator it = items.begin();
    for(; it != items.end(); ++it)
    {
        pItem = *it;
        q = pItem->x();
        std::cout << q;
    }
//---


но у меня в итоге отображаются одни нули. Что я делаю не так? или как это можно сделать по другому?

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 25.10.2021, 7:10