Название: QGraphicsView QGraphicsScene Отправлено: danquimby от Ноябрь 23, 2011, 14:57 Добрый вечер у меня есть вопрос.
у меня есть QGraphicsView(0,0,20,30) // к примеру в который я помещаю QGraphicsScene scene(0,0 700, 700); и в scene я запихиваю items вопрос в том , как сделать что бы отображение (а оно не все выводит, а кусочек) как бы перемещалось, показываю другие кусочки scene к примеру как в любой аркадной игре той же .. маррио Название: Re: QGraphicsView QGraphicsScene Отправлено: Bepec от Ноябрь 23, 2011, 15:45 Ну можно просто центрировать View - centerOn.
Я давно чтот о подобное делал, помню смутно. Но смысл - он центрирует относительно координат, соответственно сможешь передвигать как хочешь. PS Помоему игры сделаны немного не так, там все подгружается по мере приближения +- 2 экрана. Название: Re: QGraphicsView QGraphicsScene Отправлено: madRoger от Ноябрь 23, 2011, 16:08 Если сцена больше чем View, должны появиться скроллбары (не факт конечно. см. QAbstractScrollArea::vertical/horizontalScrollBarPolicy). Управляя скроллами, можно передвигаться по сцене.
Название: Re: QGraphicsView QGraphicsScene Отправлено: danquimby от Ноябрь 23, 2011, 16:21 Ну можно просто центрировать View - centerOn. Я давно чтот о подобное делал, помню смутно. Но смысл - он центрирует относительно координат, соответственно сможешь передвигать как хочешь. PS Помоему игры сделаны немного не так, там все подгружается по мере приближения +- 2 экрана. когда то я делал по другому когда работал с 2d движками. просто у item была не просто x y а x - xscene и когда сцена движеться я делал просто xscene -= speed а тут мб по другому решить. Название: Re: QGraphicsView QGraphicsScene Отправлено: danquimby от Ноябрь 23, 2011, 16:24 Если сцена больше чем View, должны появиться скроллбары (не факт конечно. см. QAbstractScrollArea::vertical/horizontalScrollBarPolicy). Управляя скроллами, можно передвигаться по сцене. http://doc.qt.nokia.com/4.7/qabstractscrollarea.html#setHorizontalScrollBar (http://doc.qt.nokia.com/4.7/qabstractscrollarea.html#setHorizontalScrollBar) ?? то что нужно ? Название: Re: QGraphicsView QGraphicsScene Отправлено: danquimby от Ноябрь 23, 2011, 16:35 спасибо, нашел
void QGraphicsView::ensureVisible ( const QRectF & rect, int xmargin = 50, int ymargin = 50 ) Прокручивает содержимое области просмотра чтобы был виден прямоугольник сцены rect с полями xmargin и ymargin, указанными в пикселах. Если указанный прямоугольник не может быть достигнут, содержимое прокручивается до ближайшего годного положения. Значение по-умолчанию для обоих полей равно 50 пикселов Название: Re: QGraphicsView QGraphicsScene Отправлено: madRoger от Ноябрь 23, 2011, 16:36 Скроллы должны появиться автоматически. Управлять ими так QScrollBar::setValue(int).
При изменении значения скролла должно произойти смещение видимой части сцены. Название: Re: QGraphicsView QGraphicsScene Отправлено: madRoger от Ноябрь 23, 2011, 16:39 Цитировать void QGraphicsView::ensureVisible ( const QRectF & rect, int xmargin = 50, int ymargin = 50 ) тоже вариант, даже более правильный. |