Russian Qt Forum
Ноябрь 24, 2024, 00:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает dragLeaveEvent  (Прочитано 2583 раз)
Anarion
Гость
« : Май 25, 2010, 06:02 »

Доброго всем времени суток. Возникла проблема неопределенного характера при реализации перетаскивания.
Собственно вся программа (сокращена для наглядности).

Код:
#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.

Подскажите пожалуйста, что делаю не так? Просто очень хотелось бы поймать именно этот момент. Заранее благодарен.
Записан
ритт
Гость
« Ответ #1 : Май 25, 2010, 06:13 »

намёк (типа, тонкий):
void QWidget::dragEnterEvent ( QDragEnterEvent * event )   [virtual protected]
void QWidget::dragLeaveEvent ( QDragLeaveEvent * event )   [virtual protected]
Записан
Anarion
Гость
« Ответ #2 : Май 25, 2010, 06:52 »

Спасибо... даже стыдно стало как-то... Это все копипаст виноват  Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.