Есть ли способ отличить, получил ли виджет Qt фокус от щелчка мышью или нажатия клавиши таблицы? - PullRequest
0 голосов
/ 10 октября 2018

Я использую Qt5 на Windows.Есть ли способ отличить, получил ли виджет Qt фокус от щелчка мышью или нажатия клавиши таблицы?

1 Ответ

0 голосов
/ 11 октября 2018

Да, есть.Переопределите QWidget::focusInEvent и используйте метод QFocusEvent::reason события фокуса, чтобы выяснить причину!

Простой пример:

void MyWidget::focusInEvent(QFocusEvent *event) {
    qDebug() << event->reason();
    QWidget::focusInEvent(event);
}

Примечание: Если вы хотите получить эту информацию из уже существующего виджета, вы всегда можете вместо этого установить фильтр событий.См. https://doc.qt.io/qt-5/qobject.html#installEventFilter для примера того, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...