2010-11-14 86 views
2

這是我第一次嘗試編寫QT應用程序,我只是想了解它是如何工作的。我的目標是擁有一個400x400的小部件,它可以在鼠標懸停在鼠標上時知道鼠標的確切位置。例如,如果鼠標懸停在左上角,位置可能是10,10(或類似的東西)。如果鼠標在右下角,可能會說390,390。在QT中查找當前鼠標位置

最終,這些座標將顯示在主窗口的標籤上,但這應該是微不足道的。我被困在實際的座標獲取中。有任何想法嗎?

回答

5

對於您的小部件,您必須啓用鼠標跟蹤。

然後,您可以安裝事件過濾器,注意鼠標事件並查找移動事件,也可以從QWidget繼承並重寫鼠標事件,查找鼠標移動事件。

http://doc.qt.io/qt-4.8/qwidget.html#mouseTracking-prop

http://doc.qt.io/qt-4.8/eventsandfilters.html

http://doc.qt.io/qt-4.8/qmouseevent.html

+0

感謝您的回覆。我的工作大部分都是這樣的......但我無法將MouseMoveEvent限制爲只有Widget。無論光標位於窗口的哪個位置,它都會報告光標位置。對不起,這是一個不好的問題,但是我怎麼知道事件是否來自我的Widget? – dfetter88 2010-11-14 19:07:26

+0

標記爲正確。開創新的問題。 – dfetter88 2010-11-14 20:27:48

0

如果你遇上的時候,你並不需要實際的跟蹤,只是位置目前的情況下,你可以使用QCursor::pos()