У меня есть следующий класс, который обрабатывает нажатие клавиши escape.
class KeyPress : public QWidget
{
Q_OBJECT
public:
KeyPress(QWidget * parent=0);
protected:
void keyPressEvent(QKeyEvent * event);
};
И файл .cpp:
void KeyPress::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape) {
qApp->quit();
}
}
Он отлично работает, но если я изменю имя метода, скажем, на keyPressed(QKeyEvent * event)
, он не сработает. Метод keyPressEvent(QKeyEvent * event)
согласно документам является защищенным методом QWidget
. Значит, исходный код просто перегружает этот метод, не так ли? И перегрузка работает. Но почему совершенно новая версия метода с другим названием, но с той же реализацией не сработает?