如何从QML旋转框中获取数据

时间:2014-04-23 11:33:24

标签: c++ qt qml

将数据从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类型。我甚至尝试过删除%后缀。没有帮助。有人能解开一些光吗?谢谢!

1 个答案:

答案 0 :(得分:0)

解决了问题 - 数据是一个“真正的”qml基本类型,它是双精度浮点数。所以解决方案是:

double vpct = v_pct->property("value").toDouble();

感谢SingerOfTheFall的输入。