Tüm Q_PROPERTY öğelerinin tümünü otomatik olarak yineleyecek ve bazı özellikler qRegisterMetaType ile kaydedilen türleri kullanan test kodunu yazıyorum. Bunları QVariant içine okumak/yazmak istiyorsanız, bunları varyantlara kaydederken QVariant :: UserType kullanmalıyım. Çok uzak çok iyi.QVariant türünde QVariant nasıl doğrulanır? UserType beklenen türdür?
Fakat bu özelliklerin okumalarını ve yazımlarını test etmek istediğimde, onların türünü de bilmem gerekiyor. Zaten standart qt tipleri olan şeyler için, bunu QVariant :: type() aracılığıyla yapabilirim, fakat çok fazla usertipte sahip olduğumdan, bu nasıl başarılırdı? QVariant ait API itibaren
, ben bu lekeli:
bool QVariant::canConvert (Type t) const
Ama bu halinde çeteleler yanlış türlerine yol açacaktır eğer ben biraz şüpheli değilim?
QVariant'da hangi türdeki kullanıcı tipinin depolandığını doğrulamak için kusursuz bir yol ne olurdu?
QVarian durumunda öyle görünüyor t :: UserType değişken, typeName() yöntemi "UserType" değerini döndürür ve typeName(), QVariant :: UserType enum değerini döndürür. Yani her ikisi de işe yaramaz – rasjani
Nesne süreleri sadece iyi, ben de örnekleme de sadece iyi çalışıyor, bu yüzden typecasting ile de kontrol yapabilirim. Ama benim sorum, enum'un bir sınıf türü olmadığı ve bir sayısal değişkenin bir numaraya varsayılan olarak yazılabilmesiydi. Ama dediği gibi. Kodunu kontrol edeceğim. – rasjani
Ah, üzgünüm, o kısmı fark etmedim. Denedim ve Q_DECLARE_METATYPE veya qRegisterMetaType ile bir enum tipi kaydetmek ve aynı şekilde kullanmak mümkün görünüyor. Dokümanlar sadece, sınıf veya yapının genel varsayılan yapıcısı, kopya kurucusu ve yıkıcı ile konuştuğundan emin değilim, bu yüzden tamamen emin değilim, ama yaratma, kopyalama ve imha için aynı örtük arabirime sahip herhangi bir tür için çalışması gerektiğini düşünüyorum. – Leiaz