QGraphicsView上加载图片如何跟随鼠标滚轮缩放,附上代码

bestman 2017-02-06 01:36:51
QGraphicsView上加载图片如何跟随鼠标滚轮缩放
void LABcolony_selection::slot_zoomfunction(bool zoom)
{
QMatrix matrix;

if(zoom && m_zoom_level <= 250)
{
m_zoom_level += 5;
qDebug() << m_zoom_level;
qreal scale = qPow(qreal(2), (m_zoom_level - 250) / qreal(50));
qDebug() << scale;
matrix.scale(0.8+scale, 0.8+ scale);
ui->graphicsView->setMatrix(matrix);
}
else if(!zoom && m_zoom_level > 1)
{
m_zoom_level -= 5;
qDebug() << m_zoom_level;
qreal scale = qPow(qreal(2), (m_zoom_level - 250) / qreal(50));
matrix.scale(0.8+scale, 0.8+scale);
ui->graphicsView->setMatrix(matrix);
}
else if (!zoom && m_zoom_level == 1)
{
matrix.scale(0.8, 0.8);
ui->graphicsView->setMatrix(matrix);
}

return;
}
我这里虽然可以缩放,但是无法跟随鼠标,请指教
...全文
877 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Marissa417 2019-04-15
  • 打赏
  • 举报
回复
m_zoom_level 是一个常量吗,怎么定义的
bestman 2017-02-07
  • 打赏
  • 举报
回复
问题解决,我在QGraphicsView加了一个mouseMoveEvent(QMouseEvent *e),然后就特么出问题了,死活不能随鼠标放大缩小,删掉后问题立马解决了,散分
bestman 2017-02-07
  • 打赏
  • 举报
回复
引用 1 楼 firebolt2002 的回复:
可以重载QGraphicsView的wheelEvent函数,在里面根据delta的值在做缩放。
我就是这么干的,但是没法随鼠标滚轮缩放,只能在(0,0)的位置上缩放
Z_墨脱 2017-02-07
  • 打赏
  • 举报
回复
那我接个分
firebolt2002 2017-02-06
  • 打赏
  • 举报
回复
可以重载QGraphicsView的wheelEvent函数,在里面根据delta的值在做缩放。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧