Qt Dialog捕捉鼠標移動事件


最近做的項目中,由於重寫界面標題欄,需要自己實現鼠標拖動界面放大縮小的功能,所以就需要捕獲鼠標移動事件。

在網上查了一些資料,很多都說通過setMouseTracking(true);的方式開啟鼠標跟蹤,並且把所有子控件的該狀態也打開。但是效果並不好。
最終找到一個方法,在構造時調用以下代碼。

//使用此方法開啟鼠標移動事件不會被子控件覆蓋
setAttribute(Qt::WA_Hover, true);

然后重載下面的函數,在里面實現功能:

    bool event(QEvent* event);
    {
        if (event->type() == QEvent::HoverMove) {
            //具體實現
        }
        return QDialog::event(event);
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM