crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QWebFrame Zoom относительно выбранной точки
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
zaytsewa Дата 1.7.2011, 8:57
  трабл был в том, что позиция курсора возвращалась в координатах приложения, а не в координатах виджета
zaytsewa Дата 8.6.2011, 12:39
  спасиб, позже проверю
Алексей1153 Дата 7.6.2011, 19:47
  можно попробовать так:

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 Дата 7.6.2011, 17:00
 
    
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 );


вот это не работает так как надо...
zaytsewa Дата 7.6.2011, 14:24
  Всем привет!
Хочется управлять зумом относительно выбранной точки, те. при приближении требуется, чтобы под курсором оставался один и тот же элемент изображения.
Подскажите как и чего, пожалуйста.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 2:50