关于QApplication的notify恢复的问题
class MyApplication : public QApplication {
public:
MyApplication(int&argc,char **argv);
~MyApplication();
protected:
bool notify(QObject*, QEvent *);
private:
bool m_lock;
};
bool MyApplication::notify(QObject* obj, QEvent *e)
{
if(e->type() == QEvent::KeyPress)
{
qDebug()<<"my application keypress :"<<m_lock;
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(e);
if(keyEvent->key() == Qt::Key_F1) {
m_lock = !m_lock;
qDebug()<<"key F1 press \n";
}
}
//qDebug()<<"my application "<<m_lock;
if(m_lock) return true;
return QApplication::notify(obj,e);
}
m_lock 初始值是false。
我想实现按一下F1,所有事件都无法用了,在按一下F1又恢复了。
这个代码现在表现的是就按一次F1后,鼠标键盘都不动。再次按下F1没有恢复。请问什么问题呢?