2011-09-04 4 views
0

나는 화면에 정지 된 qwidgets를 많이 가지고 있으며 나는 화면에서 드래그 할 수있는 다른 많은 위젯을 가지고있다. 위젯을 정지 위젯 위에 드래그하면 고정 위젯이 일부 코드를 실행해야합니다. 고정 된 개체가 위젯을 어떻게 알 수 있는지 파악할 수없고 어떤 위젯인지 알 수 없습니다.다른 qwidget이 위에있을 때 qwidget을 알리는 방법

EDIT : 드래그하는 객체가 Qt Drag 기능이 아닌 직접 만든 함수에 의해 드래그되고 있습니다. 이것은 내가 사용하는 것입니다

void Piece::mouseMoveEvent(QMouseEvent *event) 
{ 
    if(event->buttons() == Qt::LeftButton && turn == color) 
    { 
      x = event->globalX()-18; 
      y = event->globalY()-18; 
      move(x,y); 
    } 
} 

dropEvent는 여전히이 방법을 사용하여 작동합니까? 하나 만들려고했지만 위젯을 정지 위젯 위에 놓았을 때 dropEvent가 입력되지 않았습니다.

답변

2

당신은 고정 된 물체가 다른 위젯을 드래그 또는 제거 될 때 드롭 이벤트가 몇 가지 코드를 실행 한 후 이러한 이벤트를 구현 setAcceptDrops(true)를 사용하여 동의해야 :

void dragMoveEvent(QDragMoveEvent* event); 
void dragEnterEvent(QDragEnterEvent* event); 
void dropEvent(QDropEvent* event);