有没有办法区分 Qt 小部件是通过鼠标单击还是从表格按键获得焦点?
Posted
技术标签:
【中文标题】有没有办法区分 Qt 小部件是通过鼠标单击还是从表格按键获得焦点?【英文标题】:Is there a way to distinguish, whether a Qt widget got focus from mouse clicking or from table key pressing? 【发布时间】:2018-10-10 16:28:27 【问题描述】:我在 Windows 上使用 Qt5。
【问题讨论】:
【参考方案1】:是的,有。覆盖QWidget::focusInEvent
,使用焦点事件的QFocusEvent::reason
方法获取原因!
简单示例:
void MyWidget::focusInEvent(QFocusEvent *event)
qDebug() << event->reason();
QWidget::focusInEvent(event);
注意:如果您想从现有的小部件中获取此信息,您始终可以安装一个事件过滤器。有关如何执行此操作的示例,请参阅 https://doc.qt.io/qt-5/qobject.html#installEventFilter。
【讨论】:
以上是关于有没有办法区分 Qt 小部件是通过鼠标单击还是从表格按键获得焦点?的主要内容,如果未能解决你的问题,请参考以下文章