Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QWebFrame Zoom относительно выбранной точки
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Script. Интеграция WebKit
zaytsewa
Всем привет!
Хочется управлять зумом относительно выбранной точки, те. при приближении требуется, чтобы под курсором оставался один и тот же элемент изображения.
Подскажите как и чего, пожалуйста.
zaytsewa
    
QPoint cursorPosition  = cursor().pos();

    // изменить масштаб
    if ( zoomSteps > 0 )
    {
        page()->mainFrame()->setZoomFactor( page()->mainFrame()->zoomFactor() + 0.2 );
    }
    else
    {
        page()->mainFrame()->setZoomFactor( page()->mainFrame()->zoomFactor() - 0.2 );
    }

    // вернуться к отслеживаемой точке
    page()->mainFrame()->setScrollPosition( cursorPosition );


вот это не работает так как надо...
Алексей1153
можно попробовать так:

1) до масштабирования выяснить, на какой точке страницы находится курсор (клиентские координаты X0,Y0), а также текущий зум (Z0), текущий скролл (Sx0,Sy0)
2)задаём новый зум (Z1)

3) узнаём, куда сместилась точка , клиентские координаты нового положения:
X1= X0*Z1/Z0
Y1= Y0*Z1/Z0

4) теперь нужно сдвинуться так, чтобы визуально совпали исходная точка и результат
Sx1=Sx0+(X1-X0);
Sy1=Sy0+(Y1-Y0);

(не компилировал, не отлаживал :) )
zaytsewa
спасиб, позже проверю
zaytsewa
трабл был в том, что позиция курсора возвращалась в координатах приложения, а не в координатах виджета
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.