gpt4 book ai didi

当连接的 QML 属性更改时,C++ 对象无法获取值

转载 作者:行者123 更新时间:2023-11-28 05:22:03 25 4
gpt4 key购买 nike

我在 C++ 中有一个属性为“step”的组件:

class cppcomponent   : public QObject
...
Q_PROPERTY(QVariant step READ getStep WRITE setStep NOTIFY stepChanged)

我尝试将此属性连接到 QML。

TextInput {
text: cppcomp.step
}

它在一个方向上起作用。 QML 获取初始值。但是,当我更改 QML 中的值时,不会调用我的 setStep 方法。

它仅在我在 onAccepted 中显式设置 C++ 组件的属性时有效:

TextInput {
text: cppcomp.step
onAccepted: {
cppcomp.step = step.text
}
}

我真的必须明确地设置它吗?

最佳答案

除了 step 可能未定义外,您的代码应该可以正常运行。如果您想访问 TextInput 属性,只需省略其 id。要确认您的想法是否正常工作,请运行此代码:

    QtObject { //A bare QObject with one property
id:cppcomp
property string step: "Working"
}

TextInput {
text: cppcomp.step+"!"
onAccepted: cppcomp.step = text
}

TextInput 获得焦点时,每次您按 enter 都会出现一个新的 !

(使用 Qt 5.7 测试)

关于当连接的 QML 属性更改时,C++ 对象无法获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com