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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение масштаба отображаемого точечного графика при скроллинге на QRaphicsVie  (Прочитано 2935 раз)
dqrest
Гость
« : Июль 05, 2012, 17:42 »

Всем привет!!!Есть точечный график, который состоит из линий. Есть scene and view. Вывожу длинный график в view. Есть одна проблема, как изменить масштаб view так, чтобы видимая часть графика уместилась по вертикали в окно при скроллинге???
Записан
_OLEGator_
Гость
« Ответ #1 : Июль 05, 2012, 21:43 »

Код
C++ (Qt)
void QGraphicsView::fitInView ( const QRectF & rect, Qt::KeepAspectRatioByExpanding )
Записан
dqrest
Гость
« Ответ #2 : Июль 06, 2012, 08:37 »

спс))я так понимаю, что нужно переопределить функцию скроллинга у view добавить вот эту функцию???только это нужно добавить???
Записан
_OLEGator_
Гость
« Ответ #3 : Июль 06, 2012, 09:10 »

ничего переопределять не надо, просто вызвать ее один раз и масштаб подстроится под заданные размеры:
Код
C++ (Qt)
void QGraphicsView::fitInView ( QGraphicsView::sceneRect(), Qt::KeepAspectRatioByExpanding )

и читать документацию надо!
Записан
dqrest
Гость
« Ответ #4 : Июль 09, 2012, 08:05 »

Спасибо!!!)))))
Записан
dqrest
Гость
« Ответ #5 : Июль 09, 2012, 17:25 »

можно еще один вопрос??? насколько я понял  QGraphicsView::QRectF sceneRect () const выдает нам QRectF всей сцены, и finInView принимает QRectF всей сцены.А мне это не выгодно, поскольку я добавляю точки  и и приходится масштабировать все сцену, а мне нужно только видимую часть сцены, написал следующий код, который находится в обработчике нажатия кнопки для масштабирования видимой части сцены, после добавления точки, но почему-то выходит какая-та ересь:
видимая часть не масштабирется, и вообще начинает уменьшать масштаб при больших добалений точек.

Код:
view->fitInView ( view->mapToScene(view->viewport()->rect()).boundingRect(), Qt::KeepAspectRatioByExpanding);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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