有关于如何从单例对象属性绑定到QML属性的question。但是如果我们想要将一个QML属性绑定到一个单例对象呢?如何将属性绑定到来自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