Тип QML ExtendedAttributes
Тип ExtendedAttributes хранит дополнительные данные о месте. Подробнее...
| Заявление об импорте: | import QtLocation 5.3 |
| С момента: | Qt Location 5.5 |
| Инициализирует: | QQmlPropertyMap |
Сигналы
- void valueChanged(строка ключ, вариант значение)
Методы
- вариант keys()
Подробное описание
Тип ExtendedAttributes представляет собой словарь PlaceAttributes. Для доступа к атрибутам в словаре используйте метод keys() для получения списка ключей, хранящихся в словаре, и используйте оператор [] для доступа к элементам PlaceAttribute.
Ниже приведены стандартные ключи, определенные API. Реализации плагинов могут определять дополнительные ключи. Пользовательские ключи должны быть квалифицированы уникальным префиксом, чтобы избежать конфликтов.
| ключ | описание |
|---|---|
| openingHours | Часы работы места |
| payment | Типы оплаты, принимаемые местом, например, Visa, Mastercard. |
| x_provider | Имя поставщика, от которого получены данные о месте |
| x_id_<provider> (например, x_id_here) | Альтернативный идентификатор, который идентифицирует место с точки зрения указанного поставщика. |
Некоторые плагины могут вообще не поддерживать атрибуты, другие могут поддерживать только определенный набор, другие — динамически изменяемый набор атрибутов со временем или даже возможность произвольного определения атрибутов приложением-клиентом. Атрибуты также могут различаться в зависимости от места, например, у одного места могут быть часы работы, а у другого — нет. Обратитесь к ссылкам на плагины для получения подробной информации.
Некоторые атрибуты могут быть не предназначены для чтения конечными пользователями; поле метки таких атрибутов пусто, чтобы указать этот факт.
Примечание: экземпляры ExtendedAttributes используются только в контексте мест. Невозможно создать экземпляр ExtendedAttributes напрямую или повторно назначить свойство Place's ExtendedAttributes. Изменение ExtendedAttributes может быть выполнено только через Javascript.
Следующий пример показывает, как получить доступ ко всем PlaceAttributes и вывести их в консоль:
import QtPositioning 5.5
import QtLocation 5.6
function printExtendedAttributes(extendedAttributes) {
var keys = extendedAttributes.keys();
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
if (extendedAttributes[key].label !== "")
console.log(extendedAttributes[key].label + ": " + extendedAttributes[key].text);
}
} Следующий пример показывает, как назначить и изменить атрибут:
//assign a new attribute to a place
var smokingAttrib = Qt.createQmlObject('import QtLocation 5.3; PlaceAttribute {}', place);
smokingAttrib.label = "Smoking Allowed"
smokingAttrib.text = "No"
place.extendedAttributes.smoking = smokingAttrib;
//modify an existing attribute
place.extendedAttributes.smoking.text = "Yes" См. также PlaceAttribute и QQmlPropertyMap.
Документация по сигналам
void valueChanged(строка ключ, variant значение)
Этот сигнал излучается при изменении набора атрибутов. ключ соответствует значению, которое было изменено.
Соответствующий обработчик — onValueChanged.
Документация по методам
variant keys()
Возвращает массив ключей атрибутов места, хранящихся в словаре в данный момент.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qtlocation-extendedattributes.html