2
從我看到的情況來看,即使按下按鈕,QApplication::mouseButtons()
也不會返回任何按鈕。這發生在您點擊窗口的一側來重新調整大小時。它與文檔是一致的,因爲mouseButtons()
反映了來自QEvent::mouseButtonPress
等流程的狀態。但是,我只需要知道該按鈕是否被按下。是否有人知道是否可以通過Qt API?鼠標按鈕狀態
從我看到的情況來看,即使按下按鈕,QApplication::mouseButtons()
也不會返回任何按鈕。這發生在您點擊窗口的一側來重新調整大小時。它與文檔是一致的,因爲mouseButtons()
反映了來自QEvent::mouseButtonPress
等流程的狀態。但是,我只需要知道該按鈕是否被按下。是否有人知道是否可以通過Qt API?鼠標按鈕狀態
我認爲這是不可能的。應用程序窗口外的鼠標事件不會傳遞給其事件處理程序。拖動鼠標邊框是這類事件之一,它由窗口系統處理。另一個例子是點擊其他窗口。通常,應用程序不知道用戶如何處理其他窗口。您需要安裝系統範圍的事件偵聽器或使用本機API功能(例如Windows上的GetAsyncKeyState)來確定。這種行爲是不尋常的,可能很危險。在大多數情況下它並沒有用,而且Qt似乎沒有這個能力。
是的,所以它似乎。但在事件系統之外測試按鈕的物理狀態並不難。 – Joan