Russian Qt Forum

Qt => Общие вопросы => Тема начата: Авварон от Октябрь 15, 2009, 09:57



Название: intallEventFilter на TreeView
Отправлено: Авварон от Октябрь 15, 2009, 09:57
собственно сабж. Вешаю эвент фильтр - половина евентов не доходит (mouseClick, mouseMove). События приходят только если кликать/наводить на рамку вьюхи. В е ошибка? Тестовый проект прилагается.


Название: Re: intallEventFilter на TreeView
Отправлено: alexman от Октябрь 15, 2009, 10:04
setMouseTracking( true )


Название: Re: intallEventFilter на TreeView
Отправлено: Авварон от Октябрь 15, 2009, 10:17
в примере оно включено - см дизайнер


Название: Re: intallEventFilter на TreeView
Отправлено: spectre71 от Октябрь 15, 2009, 11:00
собственно сабж. Вешаю эвент фильтр - половина евентов не доходит (mouseClick, mouseMove). События приходят только если кликать/наводить на рамку вьюхи. В е ошибка? Тестовый проект прилагается.
Это приколы тролей :)

Ловим клавиатурные
    treeView->installEventFilter(filter1);
Ловим мышиные
    treeView->viewport()->installEventFilter(filter2);
    treeView->viewport()->setMouseTracking(true);


Название: Re: intallEventFilter на TreeView
Отправлено: Авварон от Октябрь 15, 2009, 11:09
спасибо огромное, помогло:) а где про это написано в ассистанте?)


Название: Re: intallEventFilter на TreeView
Отправлено: spectre71 от Октябрь 15, 2009, 11:16
спасибо огромное, помогло:) а где про это написано в ассистанте?)
А фиг его знает. Возможно в QAbstractScrollArea.


Название: Re: intallEventFilter на TreeView
Отправлено: Авварон от Октябрь 15, 2009, 12:13
хм, а еще такой вопрос - почему-то не получается сделать drag&drop через инстолл эвент фильтра.
Код рабочий - при наследовании от TreeView работает. При эвент фильтре не приходит событие Qt::DragMove (в то время как DragEnter приходит)... Фильтр вешал как на тривьюху, так и на вьюпорт


Название: Re: intallEventFilter на TreeView
Отправлено: spectre71 от Октябрь 15, 2009, 14:43
хм, а еще такой вопрос - почему-то не получается сделать drag&drop через инстолл эвент фильтра.
Код рабочий - при наследовании от TreeView работает. При эвент фильтре не приходит событие Qt::DragMove (в то время как DragEnter приходит)... Фильтр вешал как на тривьюху, так и на вьюпорт

Посмотри эти методы:

 QAbstractItemView::setDragDropMode
 QAbstractItemView::setDragEnabled
 QAbstractItemView::viewport()->setAcceptDrops
 QAbstractItemView::setDropIndicatorShown