Qt Creatorでフォームを作成し、3つのカスタムQWidgets(すべてがRendererという同じクラスです)をフォームに追加しました。ユーザーがAltキーを押したときに通知されるフォーム以外の3つのウィジェットがすべて必要ですが、現時点では動作させることさえできません。Qt 4.6とOpenGL:一度に3つの異なるウィジェットでキーボードプレスをキャプチャする方法は?
void keyPressEvent(QKeyEvent *)とvoid keyReleaseEvent(QKeyEvent *)をRendererクラスに追加しましたが、関数はまったく呼び出されませんでした...(ブレークポイントはトリガーされませんでした)
void Renderer::keyPressEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = true;
cout << "alt got pressed" << endl;
break;
}
default:
break;
}
}
void Renderer::keyReleaseEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = false;
cout << "alt released" << endl;
break;
}
default:
break;
}
}
ここに何か不足していますか?
また、3つのウィジェットでキーボードプレスを同時に登録するには、何か特別なことはありますか?
ありがとうございます。
回答しました。 2番目の質問では、privateメンバー変数ではなくクラス変数をisAltPressedにすることで問題を解決しました。 – confusedKid