Доброго всем времени суток. Возникла проблема неопределенного характера при реализации перетаскивания.
Собственно вся программа (сокращена для наглядности).
#include <QtGui>
#include <QtCore>
class Label : public QLabel {
private:
protected:
virtual void dragEnterEvent(QDragEnterEvent *de)
{
setText("dragEntedEvent");
}
virtual void dragLeaveEvent(QDragEnterEvent* de)
{
setText("dragLeaveEvent");
}
public:
Label(QWidget* pwgt = 0)
: QLabel(pwgt)
{
setAcceptDrops(true);
}
};
// ----------------------------------------------------------------------
int main(int argc, char** argv)
{
QApplication app(argc, argv);
Label *lbl = new Label();
lbl->resize(200, 200);
lbl->show();
return app.exec();
}
Если кратко, то изображается обычный QLabel. Если взять файл или выделенный текст и перетащить, не отпуская, на данный виджет, то на нем отобразится надпись "dragEntedEvent", что вполне естественно. Но вот когда увожу "зажатые" данные из поля виджета событие dragLeaveEvent не срабатывает. В частности такой вывод делаю потому, что нет надписи "dragLeaveEvent". Может, конечно, я неправильно понимаю смысл этого события (dragLeaveEvent). Я считал, что оно должно возникать в тот момент, когда курсор мыши с "зажатыми" данными выходит за границу виджета.
Qt 4.6.2, Win XP SP3.
Подскажите пожалуйста, что делаю не так? Просто очень хотелось бы поймать именно этот момент. Заранее благодарен.