鼠标按钮状态

时间:2013-06-30 16:05:46

标签: qt mouse qt4.8

从我看到的情况来看,即使按下按钮,QApplication::mouseButtons()也可能不返回任何按钮。单击窗口的一侧以重新调整大小时会发生这种情况。它与文档一致,因为mouseButtons()反映了QEvent::mouseButtonPress等流程中的状态。但是,我只需知道按钮是否被按下。有没有人知道是否可以通过Qt API?

1 个答案:

答案 0 :(得分:2)

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