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