【问题标题】:Is there a way to distinguish, whether a Qt widget got focus from mouse clicking or from table key pressing?有没有办法区分 Qt 小部件是通过鼠标单击还是从表格按键获得焦点?
【发布时间】:2018-10-10 16:28:27
【问题描述】:

我在 Windows 上使用 Qt5。 有没有办法区分 Qt 小部件是通过鼠标单击还是从表格按键获得焦点?

【问题讨论】:

    标签: c++ windows qt


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多