ich habe basierend auf dieser Webseite eine Anbindung zwischen C++ und QML erstellt.
Nur möchte ich nicht, wie im Beispiel, einen QString anbinden, sondern einen "double" value.
Class Define
Code: Alles auswählen
#ifndef BACKEND_H
#define BACKEND_H
#include <QObject>
#include <QString>
#include <QGeoPositionInfo>
class BackEnd : public QObject
{
Q_OBJECT
Q_PROPERTY(double Latitude READ Latitude WRITE setLatitude NOTIFY LatitudeChanged)
public:
explicit BackEnd(QObject *parent = nullptr);
void setPosition(QGeoPositionInfo);
double Latitude(void);
void setLatitude(const double &);
signals:
void LatitudeChanged(void);
private:
double m_Latitude;
};
#endif // BACKEND_H
Code: Alles auswählen
#include "backend.h"
BackEnd::BackEnd(QObject *parent) :
QObject(parent)
{
}
double BackEnd::Latitude(void)
{
return m_Latitude;
}
void BackEnd::setLatitude(const double &Latitude)
{
if (Latitude == m_Latitude)
return;
m_Latitude = Latitude;
emit LatitudeChanged();
}
void BackEnd::setPosition(QGeoPositionInfo Info)
{
setLatitude( Info.coordinate().latitude() );
}
Code: Alles auswählen
Text {
id: textFieldLatitude
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Latitude: ") + backend.Latitude
font.pixelSize: UIStyle.fontSizeS
font.italic: true
color: UIStyle.colorQtGray3
onTextChanged:
{
backend.Latitude = textFieldLatitude.text
textFieldLatitude.text = backend.Latitude
}
}
.. Error: Cannot assign QString to double in File (an dieser Stelle " backend.Latitude = textFieldLatitude.text"
Ich vermute mal, das ich diese Zeile anders schreiben muss.
"backend.Latitude = textFieldLatitude.text".
Zudem, wie macht man den eine entsprechende Formatierung einer Zahl in Qml.
Die Ausgabe sollte als Fliesskommazahl mit entsprechenden Nachkommastellen erfolgen.
Oml ist komplettes Neuland für mich. Entsprechend gute Tutorials habe ich noch nicht gefunden.
Viele Grüße
R.