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

Posted

技术标签:

【中文标题】如何从 QML 旋转框中获取数据【英文标题】:How do I get data from a QML spin box 【发布时间】:2014-04-23 11:33:23 【问题描述】:

在将数据从 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 类型。我什至也尝试过删除 % 后缀。没有帮助。有人可以解释一下吗?谢谢!!

【问题讨论】:

v_spin-&gt;property("text").toUInt();;也许你的意思是-&gt;property("value")?我在那里看不到任何“文本”属性... 是的,对不起。我删除了一些不相关的代码,并且不小心从我的帖子中删除了该行。打错了…… v_spin 是一个有效的指针吗?您应该对照0nullptr 进行检查 据我所知。我已经检查过了。我尝试使用不同的指针,仍然没有运气。 请不要在问题标题中添加“SOLVED”。答案部分是为了回答。您应该尽快接受自己的答案。 【参考方案1】:

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

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

感谢 SingerOfTheFall 提供您的意见。

【讨论】:

以上是关于如何从 QML 旋转框中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

QML - 获取表格视图单元格内容

如何从 imdb 获取更多信息并将其保存在 pandas 数据框中? [复制]

您如何计算从 Shiny 中的 textInput 框中获取的数据?

如何从 PySpark 中的数据框中获取模式定义?

如何从文本框中获取数据并将其添加到 dataTable?

如何从一个数据框中获取规则并将其应用于其他数据框以获取 python 中的统计信息?