Estoy intentando por media eternidad ahora anulando la función QWidgets keyPressEvent en QT pero simplemente no funcionará. Tengo que decir que soy nuevo en el CPP, pero sé ObjC y el nivel C.QWidget keyPressEvent anulación
Mi problema es el siguiente:
class QSGameBoard : public QWidget {
Q_OBJECT
public:
QSGameBoard(QWidget *p, int w, int h, QGraphicsScene *s);
signals:
void keyCaught(QKeyEvent *e);
protected:
virtual void keyPressEvent(QKeyEvent *event);
};
QSGameBoard es mi QWidget subclase y necesito para anular el keyPressEvent y fuego una SEÑAL en cada evento para notificar a algunos objetos registrados.
Mi keyPressEvent reemplaza en QSGameBoard.cpp se parece a esto:
void QSGameBoard::keyPressEvent(QKeyEvent *event) {
printf("\nkey event in board: %i", event->key());
//emit keyCaught(event);
}
cuando cambio QSGameBoard :: :: QWidget a que recibe los eventos, pero no puedo emitir la señal ya que el compilador se queja sobre el alcance . Y si lo escribo así, la función no se llama en absoluto.
¿Cuál es el problema aquí?
Ha aceptado la respuesta incorrecta. – user763305