KeyPress事件等待MousePress事件qt

时间:2013-07-23 21:00:42

标签: qt

所以我正在编写一个qtwidget,它需要通过覆盖各自的功能来输入键盘和鼠标。然而,在发生鼠标按压事件之前,按键事件才会发生。我已经玩了一些焦点,这似乎没有帮助。我觉得我错过了关于qt如何处理事件的事情。你们中的任何人都可以填写我的信息。谢谢你

以下是我认为的相关代码。如果您需要更多,请告诉我

MeshTest::MeshTest(QWidget *parent) :
  QGLWidget(parent)
{
setFocusPolicy(Qt::StrongFocus);
/* Other stuff */

}
void MeshTest::mousePressEvent(QMouseEvent *event)
{
  if (event->button() == Qt::LeftButton) {

    /* Some math/ray casting here */
    hasHit = MeshTest::findIntersections(x,y,z,dirx,diry,dirz);


  }
}
void MeshTest::mouseReleaseEvent(QMouseEvent *event){
  if (event->button() == Qt::LeftButton) {
      /* Some ray casting stuff here */
  }

  if(hasHit)
    updateGL();
}

void MeshTest::keyPressEvent(QKeyEvent* event){
  printf("Key Pressed\n"); //Just for debugging this particular bug
}

1 个答案:

答案 0 :(得分:0)

好的,所以我几天前修好了。解决方案是覆盖QWidget :: event(Event * event) 并在函数本身中执行所有事件处理