【发布时间】:2014-10-14 15:13:09
【问题描述】:
标题中的简单问题 - 如果我在一个对象上调用setObjectName(),它是否必须是唯一的,还是只是因为约定而被推荐?我已经继承了QLabel,并希望自动为创建的对象命名;如果这是一个坏主意,我会找到一些设置随机唯一名称的方法。 (我实际上正在使用 PyQt,但这不应该影响答案!)
更新
为了回应到目前为止的 2 个答案(我应该已经预测到了!),我想这样做,以便我可以忽略我的子类的所有实例。调用findChildren(QLabel) 级联,以便还找到QLabel 的所有子类 - 如果我对所有子类对象使用相同的对象名称,那么我可以在findChildren() 的第二个参数中进行正则表达式,以便我忽略它们
【问题讨论】:
-
不,它不必是唯一的,但建议这样做。当您按名称搜索某些项目或使用样式表时,这可能会出现问题。
-
QObject::findChildren返回具有匹配名称的孩子的List,因此确实可能存在重复名称。