1
그래서 각 함수를 재정 의하여 키보드 및 마우스 입력이 필요한 qtwidget을 작성하고 있습니다. 그러나 keypress 이벤트는 mousepress 이벤트가 발생할 때까지 발생하지 않습니다. 나는 초점으로 조금 놀았지만 그게 도움이되지 않는 것 같습니다. qt가 이벤트를 처리하는 방법과 관련하여 뭔가 빠져있는 것처럼 느껴집니다. 여러분 중 누구라도 나를 채울 수 있습니까? 감사합니다.KeyPress 이벤트 MousePress 이벤트 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
}
어떤 코드를 게시 할 수 있습니까? MainWindow 클래스와 같은 사운드 (만약 당신이 ..?)를 가지고 있다면 포커스를 가지고 있기 때문에 마우스 이벤트 후에 위젯이 그들을 가져가는 이유와 키 이벤트를 가져옵니다. 위젯에 대해 setFocusPolicy (Qt :: StrongPolicy)를 시도해 볼 수 있습니다. –
오른쪽 위젯의 생성자에 해당 행을 추가했지만 문제를 해결하지 못했습니다. – user1415372
NoFocus를 기본 창에 추가했지만 여전히 동일한 문제가 발생했습니다 – user1415372