我有一个处理退出键按下的类。keypressevent及其过载
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
的受保护方法。 因此,最初的代码只是重载该方法,不是吗?并且超负荷工作。但为什么具有其他名称但实现相同的方法的全新版本不起作用?
对不起,这就是我的意思。 Ment覆盖,父函数的不同实现,相同的签名。但问题依然存在。为什么新方法不起作用? – parsecer
@parsecer我已经更新了我的答案。 – fghj
感谢您的回复!但它仍然不完全清楚。是不是我的情况就像'Boo'中有一个'f2()'函数一样,它和'f()'是'cout <<“foo:f \ n'完全相同。 'Boo'对象调用该函数并没有什么错...... – parsecer