С СОМ порта мне приходят данные, например: 19999.932
С С++ кода я перекидываю это число в QML в SpinBox. Всё было бы хорошо, если бы SpinBox не округлял это число. В итоге в QML'е у меня 20000.000.
Как мне сделать так, чтобы SpinBox не округлял её?
Вот код моего SpinBox'а:
SpinBox {
id: spBox_gear_part1
x: 258
y: 157
width: 200
height: 40
font.pointSize: 19
from: 0
value: 0
to: 20000000
wrap: true
editable: true
wheelEnabled: true
Material.theme: Material.Dark
Material.foreground: "white"
Material.accent: "#2196F3"
property int decimals: 3
property real realValue: value / 1
validator: DoubleValidator {
bottom: Math.min(spBox_gear_part1.from, spBox_gear_part1.to)
top: Math.min(spBox_gear_part1.from, spBox_gear_part1.to)
}
textFromValue: function(value, locale) {
return Number(value / 1).toLocaleString(locale, 'f', spBox_gear_part1.decimals)
}
valueFromText: function(text, locale) {
return Number.fromLocaleString(locale, text) * 1
}
}
Я исправил. Может кому-то пригодиться:
Код SpinBox'a:
SpinBox {
id: spBox_gear_part1
x: 258
y: 157
width: 200
height: 40
font.pointSize: 19
from: 0
value: 0
to: 20000000
wrap: true
editable: true
wheelEnabled: true
Material.theme: Material.Dark
Material.foreground: "white"
Material.accent: "#2196F3"
property int decimals: 3
property real realValue: value / 1
validator: DoubleValidator {
bottom: Math.min(spBox_gear_part1.from, spBox_gear_part1.to)
top: Math.min(spBox_gear_part1.from, spBox_gear_part1.to)
}
textFromValue: function(value, locale) {
return Number(value / 1000.0).toLocaleString(locale, 'f', spBox_gear_part1.decimals)
}
valueFromText: function(text, locale) {
return Number.fromLocaleString(locale, text) * 1000.0
}
}
А для передачи значения в С++ уже я делаю так:
На запись в порт:
property double spBoxValue_Gear_Part1: mountForm.spinBox_Gear_Part1.value / 1000
На чтение с порта:
onSend_Gear_Part1: console.log(mountForm.spinBox_Gear_Part1.value = value * 1000
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Решаю задачкуВ общем, начальную строку нужно преобразовать в новую, заменив все повторяющиеся символы на правую скобочку ')', а все уникальные...