Qt Creator — Удалить все сочетания клавиш пользовательского интерфейса (QButton, QSlider и т. Д.)

Мне было интересно, если бы я мог удалить все сочетания клавиш из пользовательского интерфейса, чтобы я мог использовать фильтр событий, чтобы получить команды клавиш вместо этого.

В настоящее время у меня есть это в моей функции eventFilter (), и она выполняет свою работу, но она также влияет на QSliders, QLineEdits и QButton, которые у меня там есть — и я этого не хочу.

bool LinkControl::eventFilter(QObject *o, QEvent *e)
{
QKeyEvent *keyEvent = NULL;
// qDebug() << "TYPE: " << e->type();
switch(e->type())
{
case 51:
// qDebug() << this->overrideControl;
if(this->overrideControl == true)
{
keyEvent = static_cast<QKeyEvent*>(e);
// this->handleKeyboardInput(true, keyEvent->key());
// emit handleInput(true, keyEvent->key());
this->handleKeyboardInput(true, keyEvent->key());
// qDebug() << "PRESS: " << keyEvent->key();
}
this->overrideControl = !this->overrideControl;
return true;
break;
case QEvent::KeyRelease:
keyEvent = static_cast<QKeyEvent*>(e);
// this->handleKeyboardInput(false, keyEvent->key());
// emit handleInput(false, keyEvent->key());
this->handleKeyboardInput(false, keyEvent->key());
// qDebug() << "RELEASE: " << keyEvent->key();
return true;
break;
default:
return QMainWindow::eventFilter(o, e);
}
}

Например, в моей функции handleKeyboardInput клавиша со стрелкой вверх увеличивает значение, и оно делает это, но также перемещает QSlider, если он выбран.

Спасибо.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]