比如一个
对话框,上面包含了2个
按钮,类似这样
然后在对话框的
按键事件里有
- void GetCursorKey::keyPressEvent(QKeyEvent* event)
- {
- if(event->key() == Qt::Key_Up)
- qDebug()<<"up";
- if(event->key() == Qt::Key_Down)
- qDebug()<<"Down";
- QDialog::keyPressEvent(event);
- }
程序运行后按键盘光标的上下键,
没有输出,也就是说没有检测到光标键
然后如果我把对话框上的两个按钮全部设为不接受光标,既
- A_PushButton->setFocusPolicy(Qt::NoFocus);
- B_PushButton->setFocusPolicy(Qt::NoFocus);
在运行时,按光标上下键,就有输出,既可以检测到光标键,然后我进一步测试,发现上面只有有一个子控件可以接受光标,就无法在对话框的按键事件
里检测到光标键,必须把对话框上的全部子控件都谁为无法接受光标,才能在对话框里检测到光标键
然后实际的情况是,我先在的程序上面的子控件有需要接受光标,不能把他们全部设为不接受光标事件,所以我想问下有没有办法检测到光标键
另外我试了一下重写 bool QDialog::event(QEvent* event);发现在这个函数里检测和在按键事件里检测结果是一样的