2013-04-29 10 views
5

मेरे पास वर्तमान में एक प्रोग्राम है जो रेखाओं और आयत खींचता है।Qt mouseMoveEvent केवल तभी जब माउस बटन दबाया जाता है

void mousePressEvent(QMouseEvent *event); 
void mouseReleaseEvent(QMouseEvent *event); 
void mouseMoveEvent(QMouseEvent *event); 

मैं mouseMoveEvent का प्रयोग कर एक लाइन के अस्थायी पूर्वावलोकन आकर्षित करने के लिए और जब मैं जारी मैं वास्तविक रेखा खींचना। मैं क्या जानना चाहता हूं कि जब मैं बाएं माउस बटन दबाता हूं तो मैं केवल माउसमोवेंट काम का काम कैसे कर सकता हूं। मैंने निम्नलिखित की कोशिश की लेकिन फिर पूरा कार्य काम करना बंद कर देता है।

void mouseMoveEvent(QMouseEvent *event) 
{ 
    if(event->button() == Qt::LeftButton) 
    { 
     //do stuff 
    } 
} 

लेकिन फिर फ़ंक्शन कुछ भी नहीं करता है। किसी भी सहायता की बहुत

उत्तर

13

सराहना की जाएगी QMouseEvent::button() के प्रलेखन से:

ध्यान दें कि दिए गए मान माउस चाल घटनाओं के लिए हमेशा क्यूटी :: NoButton है।

आपको इसके बजाय buttons() का उपयोग करना चाहिए।

if(event->buttons() & Qt::LeftButton) 
{ 
    //do stuff 
} 
संबंधित मुद्दे