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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Зум работает не так как хотелось бы(((  (Прочитано 2151 раз)
acmatuk
Гость
« : Январь 14, 2011, 10:19 »

Доброутро всем.
Перейду сразу к делу)) Есть некий QGraphicsView, на котором есть некая QGraphicsScene с множеством QGraphicsItem на ней. Итемы расположены на сцене первый в точке (0,0) а остальные вокруг него. У View прописан зум, следующим образом:

Код:
void ViewScale::wheelEvent(QWheelEvent *event)
{
    setDragMode(ScrollHandDrag);
double numDegrees = event->delta() / 10.0;
    double numSteps = numDegrees / 15.0;
    double factor = std::pow(1.125, numSteps);
    scale(factor, factor);
centerOn(QCursor::pos());
update();
}

по задумке функцией "centerOn()" при зуммировании вид должен центрироваться по курсору, т.е. приближение в точку курсора
вроде все работает, но ... невсегда( когда курсор находится левее X-координаты = 0, то все работает, но вот стоит его установить правее, то зуммируется облась в положительной окрестности координаты X=0
подскажите как реализовать это, мб есть какаие то другие средства кроме centrOn ( аналогичная ensureVisible() дает тот же результат)
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Январь 14, 2011, 10:27 »

см. QGraphicsView::setTransformationAnchor()
Записан

Qt 5.11/4.8.7 (X11/Win)
acmatuk
Гость
« Ответ #2 : Январь 14, 2011, 10:52 »

а ларчик просто открывался Веселый 
спасибо GreatSnake  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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