如何从 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->property("text").toUInt();
;也许你的意思是->property("value")
?我在那里看不到任何“文本”属性...
是的,对不起。我删除了一些不相关的代码,并且不小心从我的帖子中删除了该行。打错了……
v_spin
是一个有效的指针吗?您应该对照0
或nullptr
进行检查
据我所知。我已经检查过了。我尝试使用不同的指针,仍然没有运气。
请不要在问题标题中添加“SOLVED”。答案部分是为了回答。您应该尽快接受自己的答案。
【参考方案1】:
解决了这个问题 - 数据是一个“真正的”qml 基本类型,它是双精度浮点数。所以解决方案是:
double vpct = v_pct->property("value").toDouble();
感谢 SingerOfTheFall 提供您的意见。
【讨论】:
以上是关于如何从 QML 旋转框中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何从 imdb 获取更多信息并将其保存在 pandas 数据框中? [复制]