2017-10-11 8 views
0

QObjectに割り当てられたすべての動的プロパティを削除する方法はありますか?すべての動的プロパティを超えるQObjectから動的プロパティを削除する

for (auto const &name : object->dynamicPropertyNames()) 
{ 
    object->setProperty(name.constData(), {}); 
} 
Q_ASSERT(object->dynamicPropertyNames().empty()); 

この繰り返し処理をし、空QVariant値を設定します。

+0

はい - すべて無効なQVariantを割り当てます。 –

答えて

2

これを試してみてください。 アサーションがdocumetationが言うので、これはQtのバグであるよりも、失敗した場合:Qtの4.2から

http://doc.qt.io/qt-5/qobject.html#dynamic-properties

を、ダイナミックプロパティがに追加され、実行時にはQObjectインスタンスから削除することができます。

ダイナミックプロパティ...無効QVariantにプロパティ値を設定することによって除去することができます。

+0

これは私が今やっていることですが、空の/無効なプロパティの巨大なリストを持つのは面倒です。 –

+0

これはバグです。ドキュメンテーションは動的プロパティを削除できると言っているので、それを削除するための 'setProperty'を受け入れるAPIはありません。 –

+0

ドープ、私は実際にはその部分を読んでいなかった。私はちょうど彼らが離れていないと仮定していた。 –

関連する問題