当连接的 QML 属性更改时C++对象不会获取值
C++ object doesn't get value when connected QML property changes
我在属性" step"中具有C 的组件:
class cppcomponent : public QObject
...
Q_PROPERTY(QVariant step READ getStep WRITE setStep NOTIFY stepChanged)
我尝试将此属性连接到QML。
TextInput {
text: cppcomp.step
}
它在一个方向上起作用。QML获取初始值。但是,当我更改QML的值时,我的setStep
方法未调用。
仅在我设置C 组件的属性时,它才能明确设置在Accepted中:
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
}
每次按 Enter TextInput
焦点时,应出现新的!
。
(用QT 5.7测试)
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 构造对象的歧义
- 使用"std::unordereded_map"映射到"std::list"对象