鼠标按钮状态
问题描述:
从我看到的情况来看,即使按下按钮,QApplication::mouseButtons()
也不会返回任何按钮。这发生在您点击窗口的一侧来重新调整大小时。它与文档是一致的,因为mouseButtons()
反映了来自QEvent::mouseButtonPress
等流程的状态。但是,我只需要知道该按钮是否被按下。是否有人知道是否可以通过Qt API?鼠标按钮状态
答
我认为这是不可能的。应用程序窗口外的鼠标事件不会传递给其事件处理程序。拖动鼠标边框是这类事件之一,它由窗口系统处理。另一个例子是点击其他窗口。通常,应用程序不知道用户如何处理其他窗口。您需要安装系统范围的事件侦听器或使用本机API功能(例如Windows上的GetAsyncKeyState)来确定。这种行为是不寻常的,可能很危险。在大多数情况下它并没有用,而且Qt似乎没有这个能力。
是的,所以它似乎。但在事件系统之外测试按钮的物理状态并不难。 – Joan