有没有一种方法可以区分Qt小部件是通过单击鼠标还是通过按下表键来获得焦点?

时间:2018-10-10 16:28:28

标签: c++ windows qt

我在Windows上使用Qt5。 有没有一种方法可以区分Qt小部件是通过单击鼠标还是按下表键来获得焦点?

1 个答案:

答案 0 :(得分:0)

是的,有。覆盖QWidget::focusInEvent并使用焦点事件的QFocusEvent::reason方法来获取原因!

简单示例:

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

注意:如果您想从现有的小部件中获取此信息,则可以始终安装事件过滤器。有关如何执行此操作的示例,请参见https://doc.qt.io/qt-5/qobject.html#installEventFilter

相关问题