1

голосов
1

ответ
35

Просмотры

Как изменить свойства QML элемента из C ++

Я пишу небольшой интервал QT (5,12) приложений в C ++, который будет двигаться центром QMap каждой секунды. Я пытаюсь обновить координаты, так что центр будет обновляться, но после отладки, он всегда оставаться таким же (исходное значение). Это моя первая попытка с QML, поэтому я помогаю себе с сильфоном связи, но, видимо, я не делаю что-то правильно. https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html функция называется Обновление каждую секунду с помощью таймера #include #include недействительными MainWindow :: UpdateCoordinates () {плавать LATDEGM = (60 * 1853,181); плавать DEG2RAD = (ПИ / 180,0); QString speedData = ui-> sboxSpeed-> текст (); BOOL нормально; AirSPEED = speedData.toInt (& нормально); AirCourse = (AirCourse + 360) 360%; Dx = AirSpeed ​​* sin ((поплавок) AirCourse * DEG2RAD); Dy = AirSPEED * сов ((поплавок) AirCourse * DEG2RAD); QString Дат текст = ui-> txtLatitude-> (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ txtLatitude-> текст (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ txtLatitude-> текст (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ удвоить(); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ удвоить(); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ
tomazj
1

голосов
6

ответ
84

Просмотры

Как преобразовать JSON в другой форме?

Я только начинаю с JSON, и у меня есть вопрос начинающих. У меня есть данные в формате JSON в таком виде: [{ "цена": "0"}, { "цена": "124"}, { "цена": "12"}, { "цена": "0"}, { «цена»: «124»}] можно ли изменить его, так что выход будет [0,124,12,0,124]?
tomazj