起点0615的个人主页

http://www.qtcn.org/bbs/u/145133  [收藏] [复制]

起点0615

与时具进,掌握最新技术!!

  • 8

    关注

  • 7

    粉丝

  • 10

    访客

  • 等级:新手上路
  • 总积分:48
  • 男,1992-07-15

最后登录:2021-11-20

更多资料

日志

qt引用OPENGL库建立3D模型之常用的键盘、鼠标、滚轮事件

2013-11-16 22:44
//鼠标按下
void GLWidget::mousePressEvent(QMouseEvent * e)
{
    lastPos = e->pos();
}

//鼠标移动
void GLWidget::mouseMoveEvent(QMouseEvent * e)
{
    GLfloat dx = GLfloat(e->x() - lastPos.x()) / width();
    GLfloat dy = GLfloat(e->y() - lastPos.y()) / height();
    if (e->button() & Qt::LeftButton) {  //button后面要加上s
        //        xrot += 180 * dy;
        //        yrot += 180 * dx;
        xrot += 180 * dy;
        yrot += 180 * dx;
        updateGL();
    }
    lastPos = e->pos();
}

//滚轮
void GLWidget::wheelEvent(QWheelEvent * e)
{
    double numDegrees = -e->delta() / 8.0;
    double numSteps = numDegrees / 15.0;
    scaling *= pow(1.1, numSteps);
    updateGL();
}

//键盘
void GLWidget::keyPressEvent(QKeyEvent * e)
{
    switch(e->key())
    {
    case Qt::Key_Left:
        initial_x -= 0.1;
        break;
    case Qt::Key_Right:
        initial_x += 0.1;
        break;

    case Qt::Key_Escape:
        close();
        break;
    }
    updateGL();
}

分类:qt + opengl|回复:0|浏览:2207|全站可见|转载
 

下一篇: grub rescue 错误

上一篇: qt5.0.2连接mysql

Powered by phpwind v8.7 Certificate Copyright Time now is:03-28 21:55
©2005-2016 QTCN开发网 版权所有 Gzip disabled