Предупреждение о неотмечаемых свойствах в QML - PullRequest
39 голосов
/ 18 июля 2011

У меня есть приложение на основе QML в Qt, которое генерирует некоторые предупреждения во время выполнения:

QDeclarativeExpression: Expression "(функция $ text () {return pinyin }) "зависит от неотмечаемых свойств: Ханзи :: DictionaryEntry :: пиньинь

Я полагаю, что это относится к этому классу, который имеет некоторые свойства без уведомителя (потому что он не нужен):

#ifndef DICTIONARYENTRY_H
#define DICTIONARYENTRY_H

namespace hanzi {

class DictionaryEntry : public QObject {

    Q_OBJECT

    Q_PROPERTY(QString simplified READ simplified)
    Q_PROPERTY(QString traditional READ traditional)
    Q_PROPERTY(QString pinyin READ pinyin)
    Q_PROPERTY(QString definition READ definition)

public:

    explicit DictionaryEntry(QObject* parent = 0);
    const QString& simplified() const;
    const QString& traditional() const;
    const QString& pinyin() const;
    const QString& rawDefinition() const;
    const QStringList& definitions() const;
    const QString& definition() const;
    void setSimplified(const QString& v);
    void setTraditional(const QString& v);
    void setPinyin(const QString& v);
    void setDefinitions(const QStringList& v);

};

}
#endif // DICTIONARYENTRY_H

Кто-нибудь знает, почему он показывает эти предупреждения, и, если они не важны, есть ли способ их отключить?

1 Ответ

72 голосов
/ 18 июля 2011

Если значения свойств могут измениться, тогда QML нужен сигнал NOTIFY, чтобы он мог знать, когда они изменились, и обновлять привязки свойств.

Если они не могут измениться, добавьте CONSTANT к вашемуобъявление свойства, например:

Q_PROPERTY(QString simplified READ simplified CONSTANT).

В вашем случае существуют заданные методы, которые подразумевают, что свойства могут изменяться, но если они не изменяются при использовании в вашем QML, вы можетеизбавиться от предупреждений, пометив их как CONSTANT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...