/*virtual*/ void OGLPiramid::mousePressEvent(QMouseEvent* pe)
{
m_ptPosition = pe->pos();
}
// ----------------------------------------------------------------------
/*virtual*/void OGLPiramid::mouseMoveEvent(QMouseEvent* pe)
{
m_xRotate += 360 * (GLfloat)(pe->y() - m_ptPosition.y()) / height();
m_yRotate += 360 * (GLfloat)(pe->x() - m_ptPosition.x()) / width();
updateGL();
m_ptPosition = pe->pos();
}
В прес ивенте мы отслеживаем координаты мышки при нажати. в мув мы разворачиваем 3д объект.
Но вот что понять не могу, почему он не поворачивается постоянно? просто при перемещении мышки, ведь на это никаких условий нету. Фактически мув ивент исполняется всегда, независимо от нажатия кнопки мыши.
А вопрос этот возник потому что я хотел ограничить возможность поворота только при нажатии левой кнопки мыши. Но при вставке кода
if(pe->type() == QEvent::MouseButtonPress)
{
if(((QMouseEvent*)pe)->button() == Qt::LeftButton)
}
В пресс ивент, модель начинает дёргаться как больная при нажатии других кнопок мыши(оно то и понятно, начальную позицию мыши не отследили, сохранилась последняя).
А если вставить в мув ивент просто ничего не работает