Qt Случайная активация dragLeaveEvent, что мне делать?

#c #qt

Вопрос:

У меня есть а QPushButton на а QScrollArea , родителем QPushButton которого является тот QScrollArea . Я перетаскиваю объект в QScrollArea , а затем в QPushButton , который всегда активирует dragLeaveEvent QScrollArea , я не хочу, чтобы эта функция активировалась, что мне делать?

Комментарии:

1. Если кнопка принимает события перетаскивания (и должна это делать), вы мало что можете с этим поделать. Тем не менее, вы можете установить фильтр событий, который обнаруживает это и обрабатывает его на ранней стадии (чтобы оно не передавалось в область прокрутки). Хотя перетаскивание (по крайней мере, в Windows) — это нечто особенное. Однажды я попытался управлять клавишами клавиатуры во время перетаскивания. (Для меня было очень важно поддержать это.) В конце концов я написал свой собственный менеджер перетаскивания, который просто фильтрует события мыши и «имитирует» (эмулирует?) перетащите и отбросьте…

Ответ №1:

Спасибо за ваши ответы, я решил проблему. Метод очень прост, просто установите для родительской кнопки qpush значение QScrollArea::widget (), и все будет решено.