Qgraphicsview увеличивает и выходит в положение мыши с использованием колеса мышиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Qgraphicsview увеличивает и выходит в положение мыши с использованием колеса мыши

Сообщение Anonymous »

У меня есть приложение с окном QgraphicsView в середине экрана. Я хочу иметь возможность масштабировать и выходить с использованием прокрутки колес мыши. < /p>

В настоящее время я повторно внедрил qgraphicsview < /code> и переопределяю функцию прокрутки мыши, чтобы оно не прокручило изображение (как оно делает по умолчанию). < /p>

void MyQGraphicsView::wheelEvent(QWheelEvent *event)
{
if(event->delta() > 0)
{
emit mouseWheelZoom(true);
}
else
{
emit mouseWheelZoom(false);
}
}
< /code>

Итак, когда я прокручиваю, я испускаю сигнал True, если колесо мыши вперед false, если колесо мыши, колесо. Теперь в основном я думаю, что моя функция Zoom просто не является лучшим способом сделать это вообще, я видел некоторые примеры людей, использующих функцию overden wheelVent для установления масштабов, но я не мог найти полный ответ. /> I Инициализировать m_zoom_level < /code> до 0 < /code> в конструкторе. < /p>

void Display::zoomfunction(bool zoom)
{
QMatrix matrix;

if(zoom && m_zoom_level < 500)
{
m_zoom_level = m_zoom_level + 10;
ui->graphicsView->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
matrix.scale(m_zoom_level, m_zoom_level);

ui->graphicsView->setMatrix(matrix);
ui->graphicsView->scale(1,-1);
}
else if(!zoom)
{
m_zoom_level = m_zoom_level - 10;
ui->graphicsView->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
matrix.scale(m_zoom_level, m_zoom_level);

ui->graphicsView->setMatrix(matrix);
ui->graphicsView->scale(1,-1);
}
}
< /code>

Как вы можете видеть выше, я использую qmatrix < /code> и масштабирую его и устанавливаю его на графический обзор и устанавливаю якорь преобразования под мышью, но он просто не работает, иногда, если я прокручивает нагрузки, он только начнет увеличивать масштаб (что, как я думаю, заключается в том, чтобы делать с петлей Int или что -то). < /p>

, как я сказал, помощь с этим или хорошим примером масштаба под мышкой будет отличным. < /p>

Подробнее здесь: https://stackoverflow.com/questions/191 ... ouse-wheel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»