给对应的按钮安装时间过滤器!!!
事件处理:屏蔽方向键
class EventFilter : public QObject {
protected:
bool eventFilter(QObject *obj, QEvent *event) override {
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
// 检查是否是方向键
switch (keyEvent->key()) {
// 屏蔽方向键
case Qt::Key_Up:
case Qt::Key_Down:
case Qt::Key_Left:
case Qt::Key_Right:
// 拦截方向键,不进行默认处理
return true;
break;
default:
// 其他按键事件正常处理
break;
}
}
// 对于非键盘事件,调用基类的 eventFilter 方法
return QObject::eventFilter(obj, event);
}
};
安装到按钮上:
EventFilter *filter = new EventFilter();
btGroup->buttons().at( i )->installEventFilter(filter);
在界面再处理按钮响应,手动移动焦点!!!