Russian Qt Forum
Ноябрь 22, 2024, 20:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Ещё глюк с QML Map - теперь с размерами MouseArea  (Прочитано 3098 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Ноябрь 05, 2019, 16:44 »

Сделал карту (пусть пока без пинча, там отдельные чудеса). Схема обычная. Карта елозится пальцем, вроде всё хорошо. Но мне нужно в ней ловить длинный тап пальцем. Добавляю обработчик

Код:
Item {
    id: mItem
    Rectangle {
        id: mRect
        anchors.fill: parent
        
        Map {
            id: mMap
            anchors.fill: parent
            .... тут вроде всё нормально
            }
        }

        MouseArea {
            anchors.fill: mMap
            onPressAndHold: {
                console.warn(mouse.x, mouse.y)
            }
        }
    }
}

Получаю какой-то бред. Карта пальцем больше не двигается. При лонгтапе через двухсекундную задержку в консоли появляются координаты мыши. Если попытаться елозить карту, они вылетают в разных местах - то есть, панорамирование ловится как серия лонгтапов. По опыту известно, что это что-то не то с размерами данных - какой-то массив очень большой, на его обработку процессорное время уходит. А какой тут массив большой? Ну разумеется, сама карта. Проверяю закомментировав всю строку anchors.fill: mMap в MouseArea. Ну да - карта снова начала елозиться пальцем, но разумеется, лонгтап уже не отрабатывается. И при замене mMap на mItem тоже никакого лонг тапа, но карта елозится.

В сетевых примерах и проблемах с Qt подобный глюк не встречал.

PS: Проблема другая - сигнал мыши к карте не проходит. По разным советам из Сети добавлял в MouseArea propagateComposedEvents: true, обработчик
Код:
            onClicked: {
                mouse.accepted = false;
            }
, разрешение hoverEnabled: true - ничего не помогает.
« Последнее редактирование: Ноябрь 05, 2019, 17:29 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #1 : Ноябрь 05, 2019, 17:14 »

Заработало когда всю труху MouseArea перенёс в Map {}. Хотя в многочисленных примерах область мши в иерархии на одном уровне с картой. Но очевидно события совсем по-разному проходят. Официальной документации на эту тему, как обычно, нет никакой.
Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.