Значения с С++ в QML

150
07 октября 2018, 12:20

С СОМ порта мне приходят данные, например: 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
    }
}
Answer 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
READ ALSO
Ошибка при инжекте DLL-файла

Ошибка при инжекте DLL-файла

Возникла ошибка, при инжекте собственного DLL-файла в игру

263
Как получить Bitmap из Gif?

Как получить Bitmap из Gif?

Простым открытием файла не получаетсяПримерный код:

189
local variables referenced from a lambda expression must be final or effectively final при фильтрации символов в строке

local variables referenced from a lambda expression must be final or effectively final при фильтрации символов в строке

Решаю задачкуВ общем, начальную строку нужно преобразовать в новую, заменив все повторяющиеся символы на правую скобочку ')', а все уникальные...

190