从 QObject 中删除动态属性
Remove dynamic properties from QObject
有没有办法删除分配给QObject
的所有动态属性?
试试这个:
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
来删除。
相关文章:
- 如何在一个属性中动态存储基元类型
- 我可以从样式表 (qss) 更改自定义动态属性吗?
- 动态分配的属性和继承
- 如何根据道具名称动态设置对象的属性?
- 从高度动态的C 数据模型中更新QML:计时器与属性绑定
- C QT5动态属性
- 通过"a pointer of the base class"访问未在基类中声明的子类的方法或属性(动态)
- 从 QObject 中删除动态属性
- 私有属性C++上的动态二维数组
- C++ 类两个动态属性
- Qt:我什么时候可以从qtcreator访问动态属性
- 为@dynamic属性动态创建getter和setter,导致无限循环
- C++动态属性
- 在c++中处理类的动态属性
- 通过boost::read_graphviz()读取boost动态属性时发生异常
- 使用boost图库将boost动态属性写入文件
- 更改 Qt 动态属性的值时的调用方法
- 绑定和动态属性
- Qt:在给定的QObject上设置的动态属性列表
- 访问QJSEngine中的动态属性