2013-04-29 34 views
5

Tôi hiện đang có một chương trình vẽ đường thẳng và hình chữ nhật.Qt mouseMoveEvent chỉ khi nhấn phím trái chuột

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

Tôi sử dụng mouseMoveEvent để vẽ bản xem trước tạm thời của một dòng và khi tôi nhả i vẽ đường thực. Những gì tôi muốn biết là làm thế nào tôi có thể thực hiện công việc mouseMoveEvent chỉ khi tôi có nút chuột trái ép xuống. Tôi đã thử như sau nhưng sau đó toàn bộ chức năng ngừng hoạt động.

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

nhưng sau đó chức năng không làm gì cả. Bất kỳ trợ giúp sẽ được nhiều đánh giá cao

Trả lời

13

Từ các tài liệu của QMouseEvent::button():

Lưu ý rằng giá trị trả về là luôn Qt :: NoButton cho chuột di chuyển sự kiện.

Thay vào đó, bạn nên sử dụng buttons().

if(event->buttons() & Qt::LeftButton) 
{ 
    //do stuff 
} 
Các vấn đề liên quan