Отображение маркера в QT QML Map

Существует плагин, который расширяет CSS, чтобы включить некоторые нестандартные функции, которые действительно могут помочь при разработке веб-сайтов. Он называется EQCSS .

Одна из вещей, которые добавляет EQCSS, является родительским селектором. Он работает во всех браузерах IE8 и выше. Вот формат:

@element 'a.active' {
  $parent {
    background: red;
  }
}

Итак, здесь мы открыли запрос элемента для каждого элемента a.active, а для стилей внутри этого запроса такие вещи, как $parent, имеют смысл, потому что есть контрольная точка , Браузер может найти родителя, потому что он очень похож на parentNode в JavaScript.

Вот демонстрация $parent и еще одной демонстрации $parent, которая работает в IE8 , а также снимок экрана, если у вас нет IE8 для тестирования с помощью .

EQCSS также включает в себя метаселектора $prev для элемента перед выбранным элементом, $this только для тех элементов, которые соответствуют запросу элемента, и многое другое.

1
задан Double A 28 March 2019 в 04:17
поделиться

1 ответ

Вы должны использовать идентификаторы для ссылки на компоненты, например, если у вас есть Map и запустите Map.addMapItem(...), к какой карте будет добавлен элемент? С другой стороны, у вас есть дурная привычка: вы используете имена существующих элементов, таких как Item, который уже является типом, в этом случае измените его на item, чтобы избежать путаницы, учитывая, что решение выше:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtLocation 5.12
import QtPositioning 5.12

Window {
    id: window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    Plugin {
        id: mapPlugin
        name: "osm"
    }
    function addMarker(latitude, longitude)
    {
        var Component = Qt.createComponent("qrc:///views/marker.qml")
        var item = Component.createObject(window, {
                                              coordinate: QtPositioning.coordinate(latitude, longitude)
                                          })
        map.addMapItem(item)
    }
    Map {
        id: map
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(59.14, 14.15)
        zoomLevel: 14
        Component.onCompleted:addMarker(59.14, 14.15)
    }
}
[ 115] С другой стороны, в маркере вы указываете, что изображение имеет в качестве дочернего элемента другое изображение, считаете ли вы его правильным ?, в этом нет необходимости, поэтому исправленный код маркера:

import QtQuick 2.0
import QtLocation 5.12

MapQuickItem{
    id: marker
    anchorPoint.x: marker.width / 4
    anchorPoint.y: marker.height
    sourceItem: Image{
        id: icon
        source: "marker.png"
        sourceSize.width: 40
        sourceSize.height: 40
    }
}

полный пример находится в следующей ссылке

0
ответ дан eyllanesc 28 March 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: