簡體   English   中英

Qt彈出式抓取器適用於所有兒童

[英]Qt popup grabMouse for all children

我試圖創建一個包含自定義小部件的彈出菜單,如控件。 我需要捕獲鼠標,但是我需要讓小部件中的子代仍然獲取其鼠標消息。 看起來, grabMouse僅將事件發送給抓住鼠標的小部件,而不向其子grabMouse發送事件。

彈出窗口只是一系列按鈕(使用QGridLayout)。 控件應該可以正常工作,即用戶按下鼠標右鍵,彈出窗口出現,他們移至某個項目並釋放鼠標按鈕。 理想情況下,它將像QMenu彈出窗口一樣工作,但具有自定義小部件和自定義布局。

我該如何實現?

看起來,僅指定屬性Qt::Popup就足以獲得所需的基本行為。

也必須在所有子代上安裝事件過濾器。 必須捕獲所有鼠標事件,輸入/離開/懸停事件。 QT具有grabMouse的缺陷,因此無法正常工作-必須使用過濾器來獲得預期的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM