У меня есть компонент в C++ со свойством «шаг»:C++ объект не получает значение при подключении QML свойство изменяется
class cppcomponent : public QObject
...
Q_PROPERTY(QVariant step READ getStep WRITE setStep NOTIFY stepChanged)
Я пытаюсь соединить это свойство QML.
TextInput {
text: cppcomp.step
}
Он работает в одном направлении. Начальное значение получает QML. Однако, когда я изменяю значение в QML, мой метод setStep
не вызывается.
Он работает только, когда я устанавливаю свойство компонента C++ явно в onAccepted:
TextInput {
text: cppcomp.step
onAccepted: {
cppcomp.step = step.text
}
}
ли я на самом деле должны установить его в явном виде?
Как вы изменяете стоимость в QML? Возможно, вы перепутали привязку? В качестве альтернативы, если у вас есть только простые геттеры и сеттеры, вы можете заменить свои «READ» и «WRITE» на «MEMBER». – DuKes0mE
ЧЛЕН? никогда не слышал об этом. Я проверю. Я изменяю значение, просто вводя его в TextInput –
А я вижу. Да, таким образом вы сбросите значение 'text' в свой TextInput и замените его новым значением, но вы не измените' step' – DuKes0mE