有没有办法删除分配给QObject
的所有动态属性?
答案 0 :(得分:3)
试试这个:
for (auto const &name : object->dynamicPropertyNames())
{
object->setProperty(name.constData(), {});
}
Q_ASSERT(object->dynamicPropertyNames().empty());
这会迭代所有动态属性并设置空QVariant
值。
如果断言失败,那么这是一个Qt错误,因为文档说:
http://doc.qt.io/qt-5/qobject.html#dynamic-properties
从Qt 4.2开始,可以在运行时向QObject实例添加和删除动态属性。
和
可以通过将属性值设置为无效的
QVariant
来删除动态属性....