Qt:检测特定QWidget之外的mousePressEvent

sam*_*m-w 2 qt qt4

我有一个包含多个子对象的小部件,用户可以通过单击它们来选择它们.

我想在用户点击窗口小部件时清除当前选择,我想知道如何最好地检测这些点击.

一些限制:

  • 吃掉mousePressEvents周围物体并不是真的可行eventFilter.
  • 如果我可以避免使用grabMouse(),我想,因为来自文档的这个警告:

    警告:抓取鼠标的应用程序中的错误通常会锁定终端.请谨慎使用此功能,并在调试时考虑使用-nograb命令行选项.

这会让我有其他选择吗?

注意:此应用程序将跨平台部署(至少Windows和Ubuntu)

Chr*_*ris 5

我倾向于使用QWidget来检查你的小部件是否失去焦点 focusOutEvent