【发布时间】:2015-09-14 05:26:13
【问题描述】:
我在Win7上测试过,当鼠标光标悬停在窗口的标题栏上时,那么
QWidget::leaveEvent(QEvent * event)
被触发,而我不希望它在这种情况下发生。当鼠标光标悬停在窗口的标题栏上时,是否有阻止事件发生的解决方案?
【问题讨论】:
我在Win7上测试过,当鼠标光标悬停在窗口的标题栏上时,那么
QWidget::leaveEvent(QEvent * event)
被触发,而我不希望它在这种情况下发生。当鼠标光标悬停在窗口的标题栏上时,是否有阻止事件发生的解决方案?
【问题讨论】:
标题栏不是 QWidget 的一部分。它是系统装饰的一部分。您无法从 Qt 访问它。
您只能通过使用eventFilter() 并计算鼠标位置和标题栏高度来做到这一点。但是Qt中没有API可以获取,所以你需要使用winapi,这意味着你破坏了可移植性。
另外,有些 Linux DE 根本没有标题栏。
【讨论】: