Russian Qt Forum

Qt => Общие вопросы => Тема начата: ars от Апрель 12, 2010, 19:01



Название: Обработка события перемещения виджета
Отправлено: ars от Апрель 12, 2010, 19:01
Добрый день!

Не могу понять как обработать событие перемещения виджета. Как следует из документации (и из экспериментирования  ) moveEvent() посылается только при перемещении виджета относительно родителя. А что если мне нужно позиционировать popup окно (наподобие меню), которое должно изменять положение при перемещении главного окна (естественно при этом виджет, за которым должно следовать popup окно относительно главного окна не движется). Кто-нибудь знает как это сделать? Заранее благодарен.


Название: Re: Обработка события перемещения виджета
Отправлено: BaltikS от Апрель 13, 2010, 10:41
в документации про moveevent такого не нашёл. Не поленился проверить, moveEvent срабатывает при любом перемещении окна........да и popup-окно закроется автоматически при потере фокуса. А определение позиции popup-окна рекомендую определять через mapTo(From)Global


Название: Re: Обработка события перемещения виджета
Отправлено: ars от Апрель 13, 2010, 13:44
Там есть один нюанс :) все действительно работает, если родитель popup окна является главным виджетом приложения (то есть не имеет родителя), поэтому когда виджет делал, такой проблемы не было... А после того, как интегрировал в полное приложение, оказалось, что если у этого окна есть родитель, то все не так хорошо :)

Move events are sent to widgets that have been moved to a new position relative to their parent.
События перемещения посылается виждетам, которые были перемещены в новую позицию относительно своих родителей :)

При перемещении окна относительная позиция не меняется, меняется только абсолютная...