[英]Qt popup grabMouse for all children
我試圖創建一個包含自定義小部件的彈出菜單,如控件。 我需要捕獲鼠標,但是我需要讓小部件中的子代仍然獲取其鼠標消息。 看起來, grabMouse
僅將事件發送給抓住鼠標的小部件,而不向其子grabMouse
發送事件。
彈出窗口只是一系列按鈕(使用QGridLayout)。 控件應該可以正常工作,即用戶按下鼠標右鍵,彈出窗口出現,他們移至某個項目並釋放鼠標按鈕。 理想情況下,它將像QMenu彈出窗口一樣工作,但具有自定義小部件和自定義布局。
我該如何實現?
看起來,僅指定屬性Qt::Popup
就足以獲得所需的基本行為。
也必須在所有子代上安裝事件過濾器。 必須捕獲所有鼠標事件,輸入/離開/懸停事件。 QT具有grabMouse的缺陷,因此無法正常工作-必須使用過濾器來獲得預期的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.