【问题标题】:Stop QWidget::​leaveEvent() from happening when mouse cursor is hovering on the title bar当鼠标光标悬停在标题栏上时,停止 QWidget::​leaveEvent()
【发布时间】:2015-09-14 05:26:13
【问题描述】:

我在Win7上测试过,当鼠标光标悬停在窗口的标题栏上时,那么

QWidget::​leaveEvent(QEvent * event)

被触发,而我不希望它在这种情况下发生。当鼠标光标悬停在窗口的标题栏上时,是否有阻止事件发生的解决方案?

【问题讨论】:

    标签: qt pyqt qt5


    【解决方案1】:

    标题栏不是 QWidget 的一部分。它是系统装饰的一部分。您无法从 Qt 访问它。

    您只能通过使用eventFilter() 并计算鼠标位置和标题栏高度来做到这一点。但是Qt中没有API可以获取,所以你需要使用winapi,这意味着你破坏了可移植性。

    另外,有些 Linux DE 根本没有标题栏。

    【讨论】:

      猜你喜欢
      • 2017-08-14
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      相关资源
      最近更新 更多