Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: AntonUfo от Февраль 02, 2010, 15:25



Название: Как получить координаты видимой области сцены ?
Отправлено: AntonUfo от Февраль 02, 2010, 15:25
Собственно вот такой вопрос.

Код:
void QGraphicsView::centerOn ( const QPointF & pos )
-прокручивает содержимое области просмотра чтобы обеспечить что координата сцены pos находиться в центре вида.
а мне нужно получить координаты вида видимой области сцены, предположим размер вида 800 на 600, а сцены 4000 на 2000, при смещении ScrollBar-ом видимая область сцены изменится, как узнать какие координаты сцены теперь центр видимой области ?


Название: Re: Как получить координаты видимой области сцены ?
Отправлено: Kolobok от Февраль 02, 2010, 15:58
mapToScene ?


Название: Re: Как получить координаты видимой области сцены ?
Отправлено: AntonUfo от Февраль 02, 2010, 16:02
mapToScene ?

да я все понять не могу как им воспользоваться, уже несколько часов голову ломаю...


Название: Re: Как получить координаты видимой области сцены ?
Отправлено: mal от Февраль 08, 2010, 17:20
Код
C++ (Qt)
{
// в конструкторе
        horz_Bar = view->horizontalScrollBar();
QObject::connect((QObject*)horz_Bar, SIGNAL(  valueChanged ( int)), this, SLOT(slotHorizontScroll(int)));
 
vert_Bar = view->verticalScrollBar();
 
QObject::connect((QObject*)vert_Bar, SIGNAL(  valueChanged ( int)), this, SLOT(slotVerticalScroll(int)));
}
 
 
slotHorizontScroll(int x)
{
int pos_x = horz_Bar->sliderPosition();
int pos_y = vert_Bar->sliderPosition();
 
QPoint qpoint(pos_x,pos_y);
QPointF qp = view->mapToScene ( qpoint );
}
slotVerticalScroll(int y)
{
//аналогично предыдущему слоту
}
 


Название: Re: Как получить координаты видимой области сцены ?
Отправлено: AntonUfo от Февраль 08, 2010, 21:37
спасибо.... приблизительно так же и сделал.... но у Вас как то более компактно получилось....