У меня есть приложение с окном 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
Qgraphicsview увеличивает и выходит в положение мыши с использованием колеса мыши ⇐ C++
Программы на C++. Форум разработчиков
1751537624
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>
Подробнее здесь: [url]https://stackoverflow.com/questions/19113532/qgraphicsview-zooming-in-and-out-under-mouse-position-using-mouse-wheel[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия