最近在Qt上實現一個功能,鼠標在圖片上移動,觸發mouseMoveEvent事件,進而生成一個小的半透明窗口,放大顯示以鼠標為中心的一個區域的圖像並隨鼠標移動。但是,必須鼠標摁下,才觸發mouseMoveEvent消息。
看了網上許多帖子,都說設置QWidget、QMainWindow的CentralWidget的屬性即可,
setMouseTracking(true);
但是,我設置后發現依舊不行。
我的窗口布局是:QMainWinow→ QSplitter→ QScrollArea→ QLabel,最終觸發QLabel的mouseMoveEvent事件。
經過發現測試,發現由上而下的依次開啟 setMouseTracking(true);屬性,即可實現鼠標移動,觸發mouseMoveMent。
最重要的是要開啟QMainWindow的setMouseTracking(true)。