में MouseMoveEvents प्राप्त करना मेरे प्रोग्राम में, जब भी माउस चलता है (यहां तक कि जब यह दूसरी विंडो पर होता है) तो माउसमोवएवेंट (QMouseEvent * ईवेंट) होना चाहूंगा।Qt
अभी, मेरी mainwindow.cpp फ़ाइल में, मेरे पास है:
void MainWindow::mouseMoveEvent(QMouseEvent* event) {
qDebug() << QString::number(event->pos().x());
qDebug() << QString::number(event->pos().y());
}
लेकिन यह जब मैं क्लिक करें और कार्यक्रम में ही की खिड़की पर माउस को खींच जबकि केवल बुलाया जा रहा है। मैं
setMouseTracking(true);
MainWindow के निर्माता में
बुला की कोशिश की है, लेकिन इस (mouseMoveEvent अभी भी केवल कहा जाता है जब मैं एक माउस बटन दबाए रखें, जहां यह है की परवाह किए बिना) कुछ अलग करने के लिए प्रतीत नहीं होता। दुनिया भर में माउस की स्थिति को ट्रैक करने का सबसे आसान तरीका क्या है?
धन्यवाद, जब माउस एप्लिकेशन विंडो पर होता है तो निरंतर अपडेट प्राप्त करने के लिए काम करता है, लेकिन यदि माउस कहीं और चलता है, तो स्थिति अपडेट नहीं होती है। – Switch
खिड़की के बाहर माउस को ट्रैक करने के लिए, आपको माउस को पकड़ना होगा (QWidget :: grabMouse() देखें)। चूंकि सभी माउस ईवेंट विजेट पर भेजे जाएंगे, जिसने माउस को पकड़ लिया है, यह अन्य विगेट्स के साथ सामान्य बातचीत को रोक देगा, जब तक कि आप केवल माउस को ही नहीं लेते जब माउस खिड़की छोड़ देता है (leaveEvent() में) और फिर माउस को छोड़ दें enterEvent() पर। – baysmith
grabMouse() जोड़ने के बाद, यह तब भी अपडेट होता है जब माउस एप्लिकेशन विंडो – Switch