示例#1
0
文件: light.cpp 项目: kampone/Sharik
void light::keyPressEvent(QKeyEvent *pe){

    switch(pe->key()){

    case Qt::Key_Escape:
        QApplication::exit();
        break;
    case Qt::Key_W:
        m_dx= 0.0f;
        m_dy=+0.01f;
        break;
    case Qt::Key_S:
        m_dx= 0.0f;
        m_dy=-0.01f;
        break;
    case Qt::Key_A:
        m_dx=-0.01;
        m_dy= 0.0f;
        break;
    case Qt::Key_D:
        m_dx=+0.01;
        m_dy= 0.0f;
        break;
    case Qt::Key_Space:
        defaultScene();
        break;
    default:
        QWidget::keyPressEvent(pe);
    }
    updateGL();

}
示例#2
0
文件: mouse_events.cpp 项目: Ztaz/cpp
// нажатие определенной клавиши
void Scene3D::keyPressEvent(QKeyEvent* pe)
{
   switch (pe->key())
   {
      case Qt::Key_Plus:
         scale_plus();     // приблизить сцену
      break;

      case Qt::Key_Equal:
         scale_plus();     // приблизить сцену
      break;

      case Qt::Key_Minus:
         scale_minus();    // удалиться от сцены
      break;

      case Qt::Key_Up:
         rotate_up();      // повернуть сцену вверх
      break;

      case Qt::Key_Down:
         rotate_down();    // повернуть сцену вниз
      break;

      case Qt::Key_Left:
        rotate_left();     // повернуть сцену влево
      break;

      case Qt::Key_Right:
         rotate_right();   // повернуть сцену вправо
      break;

      case Qt::Key_Z:
         translate_down(); // транслировать сцену вниз
      break;

      case Qt::Key_X:
         translate_up();   // транслировать сцену вверх
      break;

      case Qt::Key_Space:  // клавиша пробела
         defaultScene();   // возвращение значений по умолчанию
      break;

      case Qt::Key_Escape: // клавиша "эскейп"
         this->close();    // завершает приложение
      break;
   }

   updateGL(); // обновление изображения
}
示例#3
0
void Scene3D::keyPressEvent(QKeyEvent* pe)
{
   switch (pe->key())
   {
      case Qt::Key_Plus:
         scale_plus();
      break;

      case Qt::Key_Equal:
         scale_plus();
      break;

      case Qt::Key_Minus:
         scale_minus();
      break;

      case Qt::Key_Up:
         rotate_up();
      break;

      case Qt::Key_Down:
         rotate_down();
      break;

      case Qt::Key_Left:
        rotate_left();
      break;

      case Qt::Key_Right:
         rotate_right();
      break;

      case Qt::Key_Z:
         translate_down();
      break;

      case Qt::Key_X:
         translate_up();
      break;

      case Qt::Key_Space:
         defaultScene();
      break;

      case Qt::Key_Escape:
         this->close();
      break;
   }

   updateGL();
}
GlWidget::GlWidget(QWidget* parent)
    : QGLWidget(parent)
{
     setMinimumSize(300, 300);
     defaultScene();
}
示例#5
0
void Scene3D::keyPressEvent(QKeyEvent* pe)
{
    //qDebug() << "key: " << pe->key() << " "<< (int)pe->modifiers() << " " << Qt::CTRL <<"\n";
    switch (pe->key())
    {
    case Qt::Key_Plus:
        scale_plus();
        break;

    case Qt::Key_Equal:
        scale_plus();
        break;

    case Qt::Key_Minus:
        scale_minus();
        break;

    case Qt::Key_Up:
        rotate_up();
        break;

    case Qt::Key_Down:
        rotate_down();
        break;

    case Qt::Key_Left:
        rotate_left();
        break;

    case Qt::Key_Right:
        rotate_right();
        break;

    case Qt::Key_1:
        rotate_forward();
        break;

    case Qt::Key_2:
        rotate_backward();
        break;

    case Qt::Key_S:
        translate_up();
        break;

    case Qt::Key_W:
        translate_down();
        break;

    case Qt::Key_A:
        translate_right();
        break;

    case Qt::Key_D:
        translate_left();
        break;

    case Qt::Key_Space:
        defaultScene();
        break;
    case Qt::Key_B:
        xRot = anX;
        zRot = anZ;
        break;
    case Qt::Key_Escape:
        this->close();
        break;
    }

   updateGL();
}