找回密码
 立即注册
收起左侧

qt5.5.1 QOpenGLWidget刷新问题

1
回复
10328
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2017-1-18 21:14:36 显示全部楼层 |阅读模式
1Qter豆
我从QOpenGlWidget继承了自己的类
重写了paintGL()resizeGL()和initialGL()几个函数
在paintGL中绘图,一切正常。
重写了wheelEvent(),在里面控制投影矩阵,试图实现图形缩放
可是在编译后滚动鼠标滚轮时,wheelEvent被正常出发,在这里我调用了update函数,试图更新视图,可是不起作用
当然,在把图形窗口最大化、复原之类的操作后,图形正常缩放了。
我的问题是,怎么实现滚动鼠标滚轮时实时刷新视图??
求高手指点。

回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-6-18 17:16:35 显示全部楼层
类的头文件中要加 一句 宏  Q_OBJECT
要不就是 wheelEvent()的问题
给你一个例子:
void Glwidget::wheelEvent(QWheelEvent*event)
{


   if(event->angleDelta().y()>0)
     {
       fov+=1;

      }
    else if(event->angleDelta().y()<0)
      {
       fov-=1;

      }
      if(fov>45.0f)

          fov=45.0f;

      if(fov<0.0f)

         fov=0.0f;
      update();

}
fov 变量作为perspective函数的第一个参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了