Avertissement au sujet de la non-NOTIFYable propriétés en QML
J'ai un QML application Qt qui génère des avertissements lors de l'exécution:
QDeclarativeExpression: l'Expression "(la fonction $text() { return pinyin
})" dépend non NOTIFYable propriétés:
hanzi::DictionaryEntry::pinyin
Je crois qu'il fait référence à cette classe, qui a certaines propriétés qui n'ont pas notifiant (car pas besoin):
#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
Quelqu'un sait pourquoi c'est montrer que ces mises en garde, et, si elles ne sont pas importantes, est-il un moyen de le désactiver?
Vous devez vous connecter pour publier un commentaire.
Si les valeurs de propriété peut changer, alors QML a besoin d'un
NOTIFY
signal de sorte qu'il peut savoir quand ils ont changé et mise à jour de la propriété des liaisons.Si ils ne peuvent pas changer, ajouter
CONSTANT
à votre déclaration de propriété, par exemple:Dans votre cas, il y a des méthodes, ce qui implique les propriétés peuvent changer, mais si ils ne changent pas lorsqu'ils sont utilisés dans votre QML, vous pouvez vous débarrasser de l'avertissements en les marquant comme
CONSTANT
.