Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Dovgon от Октябрь 23, 2015, 21:32



Название: Перехват события перемещения родителя потомком
Отправлено: Dovgon от Октябрь 23, 2015, 21:32
Использую parent->installEventFilter(this); для перехвата событий родительского окна.
Но перемещение потомка происходит только в последней точки перемещения родительского. Возможно выполить перермещение потомка за родителем по плавно?


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Igors от Октябрь 24, 2015, 06:01
Использую parent->installEventFilter(this); для перехвата событий родительского окна.
Но перемещение потомка происходит только в последней точки перемещения родительского. Возможно выполить перермещение потомка за родителем по плавно?
Яснее излагайте. "перехвата событий" - каких событий? "последней точки" - когда мыша отпущена, или как? Ну и наверное "потомок" - тоже отдельное окно. Ловите в фильтре moveEvent - оно приходит


Название: Re: Перехват события перемещения родителя п&#
Отправлено: Dovgon от Октябрь 24, 2015, 09:47
Есть два окна, нужно что бы при движении одного второе двиголось за ним, при этом описовало всю троекторию движения.
Если использовать installEventFilter и в eventFilter(QObject *watched, QEvent *event) отслеживать события движения окна, то оно приходит одно когда отпускаешь мышку. И второе окно перемещается рывком. И все события происходящие над заголовком окна не прехватываются (перемещения мышки, нажатие на кнопки мышки).


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Old от Октябрь 24, 2015, 09:49
Попробуйте включить void   QWidget::setMouseTracking(bool enable)
тогда будут приходить все события при перемещении мыши.


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Dovgon от Октябрь 24, 2015, 09:58
setMouseTracking не помогло, как только курсор оказывается над заголовком окна события перестают поступать, пробовал его устанавливать qApp->installEventFilter(). тоже не одного сообщения над зоголовком, как черная дыра.


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Old от Октябрь 24, 2015, 10:03
setMouseTracking не помогло, как только курсор оказывается над заголовком окна события перестают поступать, пробовал его устанавливать qApp->installEventFilter(). тоже не одного сообщения над зоголовком, как черная дыра.
Так проблема при движении над заголовком? Сейчас приходят все события о перемещении внутри области окна?


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Dovgon от Октябрь 24, 2015, 10:05
окно перемещается удержанием его за заголовок. События происходящие над окном приходили и раньше все.


Название: Re: Перехват события перемещения родителя потомком
Отправлено: Bepec от Октябрь 24, 2015, 10:58
Заголовок управляется менеджером рабочего стола ОС. Если хотите, можете сами рисовать заголовок и тогда реагировать сможете в реалтайме.

Хм, вроде в винде при перетаскивании за заголовок основной поток программы останавливается. По крайней мере на ХР такое что то было.