Объекты JS
Добавлено 14 июля 2022 в 06:37
При работе с JS некоторые объекты и методы используются чаще. Ниже описаны некоторые из них.
Math.floor(v)
,Math.ceil(v)
,Math.round(v)
– округление числа с плавающей запятой в меньшую сторону, в большую сторону и к ближайшему значению;Math.random()
– создать случайное число от 0 до 1;Object.keys(o)
– получить ключи от объекта (включая QObject);JSON.parse(s)
,JSON.stringify(o)
– преобразования между объектом JS и строкой JSON;Number.toFixed(p)
– число с плавающей запятой с фиксированной точностью;Date
– работа с датой.
Вы также можете найти их по ссылке: Справочник по JavaScript.
Вот несколько небольших примеров того, как использовать JS с QML. Они должны дать вам представление о том, как вы можете использовать JS внутри QML.
Печать всех ключей из элемента QML Item
Item {
id: root
Component.onCompleted: {
var keys = Object.keys(root);
for(var i=0; i<keys.length; i++) {
var key = keys[i];
// печатает все свойства, сигналы, функции из объекта
console.log(key + ' : ' + root[key]);
}
}
}
Парсинг объекта в строку JSON и обратно
Item {
property var obj: {
key: 'value'
}
Component.onCompleted: {
var data = JSON.stringify(obj);
console.log(data);
var obj = JSON.parse(data);
console.log(obj.key); // > 'value'
}
}
Текущая дата
Item {
Timer {
id: timeUpdater
interval: 100
running: true
repeat: true
onTriggered: {
var d = new Date();
console.log(d.getSeconds());
}
}
}
Вызов функции по имени
Item {
id: root
function doIt() {
console.log("doIt()")
}
Component.onCompleted: {
// Вызов с использованием выполнения функции
root["doIt"]();
var fn = root["doIt"];
// Вызов с использованием метода вызова JS
// (можно передать в пользовательском объекте и аргументах)
fn.call()
}
}