Qt 鼠标按钮状态

Qt 鼠标按钮状态,qt,mouse,qt4.8,Qt,Mouse,Qt4.8,据我所见,QApplication::mouseButtons()即使按下按钮,也可能不会返回任何按钮。当您单击窗口的一侧以重新调整大小时,会发生这种情况。它与文档一致,因为mouseButtons()反映了QEvent::mouseButtonPress等流的状态。但是,我只需要知道按钮是否按下。有人知道通过qtapi是否可能吗?我认为这是不可能的。应用程序窗口外的鼠标事件不会传递给其事件处理程序。拖动鼠标边框就是这样的事件之一,它由窗口系统处理。另一个例子是单击其他窗口。通常应用程序不知道用

据我所见,
QApplication::mouseButtons()
即使按下按钮,也可能不会返回任何按钮。当您单击窗口的一侧以重新调整大小时,会发生这种情况。它与文档一致,因为
mouseButtons()
反映了
QEvent::mouseButtonPress
等流的状态。但是,我只需要知道按钮是否按下。有人知道通过qtapi是否可能吗?

我认为这是不可能的。应用程序窗口外的鼠标事件不会传递给其事件处理程序。拖动鼠标边框就是这样的事件之一,它由窗口系统处理。另一个例子是单击其他窗口。通常应用程序不知道用户对其他窗口做了什么。您需要安装系统范围的事件侦听器或使用本机API功能(例如,在Windows上)来确定这一点。这种行为是不寻常的,可能是危险的。在大多数情况下,它没有用处,而且Qt似乎没有这种能力。

是的,似乎是这样。但是在事件系统之外测试按钮的物理状态并不是那么困难。