2013-06-30 85 views
2

從我看到的情況來看,即使按下按鈕,QApplication::mouseButtons()也不會返回任何按鈕。這發生在您點擊窗口的一側來重新調整大小時。它與文檔是一致的,因爲mouseButtons()反映了來自QEvent::mouseButtonPress等流程的狀態。但是,我只需要知道該按鈕是否被按下。是否有人知道是否可以通過Qt API?鼠標按鈕狀態

回答

2

我認爲這是不可能的。應用程序窗口外的鼠標事件不會傳遞給其事件處理程序。拖動鼠標邊框是這類事件之一,它由窗口系統處理。另一個例子是點擊其他窗口。通常,應用程序不知道用戶如何處理其他窗口。您需要安裝系統範圍的事件偵聽器或使用本機API功能(例如Windows上的GetAsyncKeyState)來確定。這種行爲是不尋常的,可能很危險。在大多數情況下它並沒有用,而且Qt似乎沒有這個能力。

+0

是的,所以它似乎。但在事件系統之外測試按鈕的物理狀態並不難。 – Joan