将数据从QML旋转框读入C / C ++代码时遇到一些麻烦。我的QML代码如下:
SpinBox {
id: spinBox1
objectName: "v_pct"
x: 252
y: 243
width: 73
height: 20
value: 0
stepSize: 1
minimumValue: 0
decimals: 0
maximumValue: 99
}
我有一个函数,在旋转框中查找值,如下所示:
void main_funcs::sys_set_voltage() // sets system voltage percent of max range
{
QQuickItem* object = myDialog->rootObject();
QObject *v_spin = object->findChild<QObject*>("v_pct"); // locate voltage spinbox
QVariant vpct = v_spin->property("value").toUInt();
qDebug() << "SpinBox Data: " << vpct;
...
程序编译但此时崩溃。
我尝试将数据作为字符串导入QString,作为字符串导入QVariant,尝试使用后缀.toUInt(),. toString(),. toBitArray(),. toByteArray(),但每个时间,程序崩溃了。在QString的情况下,编译器抛出一个错误,说它是一个QVariant类型。我甚至尝试过删除%后缀。没有帮助。有人能解开一些光吗?谢谢!
答案 0 :(得分:0)
解决了问题 - 数据是一个“真正的”qml基本类型,它是双精度浮点数。所以解决方案是:
double vpct = v_pct->property("value").toDouble();
感谢SingerOfTheFall的输入。