SM
13 мая 2020 г. 22:13

Подсветка страны на карте при наведении курсора

Здравствуйте, хочу сделать подсвечивание страны при наведении курсора. Для этого сделал QStandardItemModel с полигонами нужных стран.
Проблема в том, что событие onClicked работает так как и ожидалось, а вот onEntered и onExited срабатывают в области прямоугольника, по крайним координатам, а не в области полигона. Возможно ли чтобы onEntered и onExited срабатывали в тойже области что и onClicked? Возможно есть какоето другое решение подсветки стран? Я смотрел в сторону MaskedMouseArea но как ресурс надо задать QImage. Заранее спасибо за любую помощь.
Вот собственно что я хочу получить
Видео

  1. Map {
  2. id: map
  3. anchors.fill: parent
  4. center: QtPositioning.coordinate(45.137451890638886, -68.13734351262877)
  5. plugin: Plugin {
  6. name: "osm"
  7.  
  8. }
  9. zoomLevel: 1
  10.  
  11. MapItemView{
  12. model: polygonmodel
  13. delegate: MapPolygon {
  14. color: "blue"
  15. border.color: "white"
  16. border.width: 1
  17. smooth: true
  18. opacity: 0.25
  19. geoShape: model.polygon
  20.  
  21. MouseArea{
  22. anchors.fill: parent
  23. hoverEnabled : true
  24. onEntered:
  25. {
  26. border.color = "red"
  27. border.width =3
  28. }
  29. onExited:
  30. {
  31. border.color = "white"
  32. border.width = 1
  33. }
  34. onClicked:
  35. {
  36. console.log("onClicked:")
  37. }
  38. }
  39. }
  40. }
  41. }
3

Вам это нравится? Поделитесь в социальных сетях!

1
IscanderChe
  • 13 мая 2020 г. 22:27

Возможно, это чем-то вам поможет: https://doc.qt.io/qt-5/qml-qtquick-hoverhandler.html

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь