Существует плагин, который расширяет CSS, чтобы включить некоторые нестандартные функции, которые действительно могут помочь при разработке веб-сайтов. Он называется EQCSS .
Одна из вещей, которые добавляет EQCSS, является родительским селектором. Он работает во всех браузерах IE8 и выше. Вот формат:
@element 'a.active' {
$parent {
background: red;
}
}
Итак, здесь мы открыли запрос элемента для каждого элемента a.active
, а для стилей внутри этого запроса такие вещи, как $parent
, имеют смысл, потому что есть контрольная точка , Браузер может найти родителя, потому что он очень похож на parentNode
в JavaScript.
Вот демонстрация $parent
и еще одной демонстрации $parent
, которая работает в IE8 , а также снимок экрана, если у вас нет IE8 для тестирования с помощью .
EQCSS также включает в себя метаселектора $prev
для элемента перед выбранным элементом, $this
только для тех элементов, которые соответствуют запросу элемента, и многое другое.
Вы должны использовать идентификаторы для ссылки на компоненты, например, если у вас есть 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
}
}
полный пример находится в следующей ссылке