"setData" yöntemi nasıl başarısız olabilir?
QAbstractItemModel.setDataAşağıda çoğalttığım dokümantasyon , yöntemin başarılı olursa doğru veya aksi takdirde yanlışsa dönmesi gerektiğini söylüyor. Sorum şu: Bu yöntem nasıl başarılı olamaz?
bool QAbstractItemModel :: setData (const QModelIndex & index, const QVariant & value, int role = Qt :: EditRole)
Dizindeki öğenin rol verilerini değere ayarlar.
Başarılı olursa doğru döndürür; aksi takdirde yanlış döndürür.
Veriler başarıyla ayarlanmışsa dataChanged () sinyali gönderilmelidir.
Temel sınıf uygulaması yanlış döndürür. Bu işlev ve veriler () düzenlenebilir modeller için yeniden uygulanmalıdır.
Not: Bu işlev, meta nesne sistemi ve QML'den çağrılabilir. Q_INVOKABLE'a bakın.
Ayrıca bkz. Qt :: ItemDataRole, data () ve itemData ().
Yanıtlar
SetData () işlevinin dönüş değerinin amacı, rol ve QModelIndex ile ilişkili bilgilerin düzenlenip düzenlenmediğini belirtmektir ve doğru veya yanlış döndürmesi geliştiriciye bağlı olacaktır.
Yukarıdakileri açıklayan bazı örnekler:
Modelinizin düzenlenemez olmasını istiyorsanız (varsayılan olarak herhangi bir modeldir), o zaman her zaman false değerini döndürün.
Yalnızca bazı öğelerin düzenlenebilir olmasını veya düzenlenmesini istemiyorsanız, öğeye bağlı olarak doğru veya yanlış döndürürsünüz.
Yeni değerin belirli kısıtlamalara uymasını istiyorsanız. Pratik bir örnek, düzenlenecek öğelerin yaş olması gerektiği, bu nedenle negatif değerler için yanlış, diğer durumlarda ise doğru döndürmesi olabilir.
Yöntem soyut bir sınıftadır ve geçersiz kılınabilir. Üzerine yazılırsa, bu yeni uygulamada her şey olabilir, değil mi?
Temel sınıf uygulaması yanlış döndürür. Bu işlev ve veriler () düzenlenebilir modeller için yeniden uygulanmalıdır.
Yani sadece geçersiz kılınması mümkün değil, hatta bazı durumlarda gerekli. "Başarılı" nın anlamı, geçersiz kılma yönteminin uygulayıcısına bağlıdır ve ya trueveya döndürebilir false.