Существует question о том, как привязать свойство singleton к свойству QML. Но как насчет того, чтобы мы привязывали свойство QML к объекту singleton.Как связать свойство с объектом singleton объекта из QML
Вот определение класса синглтон,
class Singleton : public QObject {
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
public:
explicit Singleton(QObject *parent = nullptr);
QString name() const;
void setName(const QString &name);
private:
QString m_name;
};
А на QML
property string qmlName: textField.text
TextField {
id: textField
}
Я хотел бы связать textField.text
с Singleton объекта name
собственности. Можно связать его с обходного как,
onQmlNameChanged: {
Singleton.name = qmlName;
}
Но это не будет Property Binding на самом деле, потому что это назначение.
Так есть ли более естественный способ привязки к объектно-ориентированному объекту?
На самом деле нет необходимости в свойствах qmlName. Просто команда 'onEditingFinished: {Singleton.name = qmlName}' 'TextField' может выполнять эту работу. – rightaway717
Да, нет необходимости в qmlName, также мы можем написать код на текстовом поле textField, но это не будет привязкой к свойствам. – cavitsinadogru
Что касается сигнала textChanged, возможно, вы не захотите его использовать, кроме «живого поиска», в противном случае, почему посылают сигналы для каждой буквы, если вам нужно целое слово. Что касается привязки свойств, @ddriver объяснил это в значительной степени, так что в этом случае вам просто нравится слово «привязка».Если он делает то же самое под капотом, то в чем разница? – rightaway717