Название: Не могу отловить события Drag & Drop через eventFilter() Отправлено: bibelwort от Мая 07, 2012, 15:15 Всем привет!
Не могу понять, в чем проблема. В дизайнере создал форму, где есть QTreeView и QListView. Поставил нужные галки, чтобы работал стандартный Drag & Drop. Он работает. Но мне нужно контролировать этот процесс самому. Так как не очень хочется наследовать эти стандартные классы, думал, что можно все сделать с помощью переопределения eventFilter() главного окна, где находятся TreeView и ListView. Для этого написал следующее: Код: bool Database::eventFilter(QObject* target, QEvent* event) В итоге вышло, что нужные события (QDragEnterEvent, QDragMoveEvent и QDropEvent) просто не происходят с вьюверами, когда я делаю перетаскивание элементов внутри них или перетаскивание новых элементов извне. Почему эти события не происходят? Название: Re: Не могу отловить события Drag & Drop через eventFilter() Отправлено: Странник от Мая 07, 2012, 15:32 а эвент-фильтр для объектов QTreeView и QListView установили?
Название: Re: Не могу отловить события Drag & Drop через eventFilter() Отправлено: bibelwort от Мая 07, 2012, 16:19 а эвент-фильтр для объектов QTreeView и QListView установили? Да, конечно. Я проверил, функция отлавливает события, но не связанные с D'n'D, а всякие KeyPressed, события мыши, короче много чего. Проблема именно в том, что при выполнении условия target == listView (или treeView), события никогда не совпадают с D'n'D событиями. Название: Re: Не могу отловить события Drag & Drop через eventFilter() Отправлено: GreatSnake от Мая 07, 2012, 18:16 Поменяй
Код на Код
Название: Re: Не могу отловить события Drag & Drop через eventFilter() Отправлено: bibelwort от Мая 07, 2012, 19:23 Поменяй Код на Код
Поменял, но все равно не работает Название: Re: Не могу отловить события Drag & Drop через eventFilter() Отправлено: Dr.Vlad от Мая 07, 2012, 23:36 Ответ:
В конструкторе ui->treeView->installEventFilter(this); ui->listView->installEventFilter(this); Если уж и это не работает (что врят ли), то создавайте свой класс для treeView и listView. |