Название: Как ловить Отправлено: Igors от Февраль 15, 2016, 07:31 Добрый день
Не работает один из драгов. Вместо ожидаемого mouseMove по каким-то необъяснимым причинам приходит mouseRelease. Но мышу-то я не отпускал! И, конечно, никаких mouseRelease самостоятельно не посылал. На всякий случай проверил нажата ли мышь средствами OSX - нажата. Вот стало интересно, что делать в такой ситуации 1) "Выкладывай тестовый проект" - такой возможности здесь нет, там все неподъемно 2) Сравнивать этот драг с другими, работающими, до тех пор пока... Ясно что этот трудоемкий метод когда нет ничего лучшего 3) "Ну так ты в отладчике-то посмотри!". Смотрю. Вижу что из очереди достается событие у которого e->buttons равно нулю Код И что? Кто и когда положил его в очередь - до этого можно и не докопаться Какие есть предложения? Спасибо Название: Re: Как ловить Отправлено: GreatSnake от Февраль 15, 2016, 13:08 Под "драгом" подразумевается "mouse press & move" ?
Может в фильтре блокируется? Что в QGuiApplication::mouseButtons() ? Название: Re: Как ловить Отправлено: Igors от Февраль 15, 2016, 13:54 Под "драгом" подразумевается "mouse press & move" ? ДаМожет в фильтре блокируется? Приходит мистический mouseRelease, который, как и задумывалось, обрабатывается как "юзер отпустил мышу" Что в QGuiApplication::mouseButtons() ? Была 1 (левая кнопка), и приходящее mouseRelease сбрасывает в 0 (в ядре Qt).Название: Re: Как ловить Отправлено: kambala от Февраль 15, 2016, 14:34 4) пробовать отрезать куски функционала
5) воспользоваться git bisect |