Sto provando da una mezza eternità che ora sovrascrive la chiave di QWidgets. Funzione PressEvent in QT ma semplicemente non funzionerà. Ho dire che sono nuovi al CPP, ma so objC e di serie C.Tasto QWidgetPressEvent override
Il mio problema è simile al seguente:
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 è il mio QWidget sottoclasse e ho bisogno di ignorare il keyPressEvent e fuoco un SEGNALE su ogni evento per notificare alcuni oggetti registrati.
mio keyPressEvent override in QSGameBoard.cpp assomiglia a questo:
void QSGameBoard::keyPressEvent(QKeyEvent *event) {
printf("\nkey event in board: %i", event->key());
//emit keyCaught(event);
}
Quando cambio QSGameBoard :: :: per QWidget riceve gli eventi, ma non posso emettono il segnale perché il compilatore si lamenta la portata . E se lo scrivo in questo modo, la funzione non viene chiamata affatto.
Qual è il problema qui?
Hai accettato la risposta sbagliata. – user763305