Qt对象的名称必须是唯一的吗?

时间:2011-08-05 14:31:11

标签: qt object unique

QObject::objectName属性对整个应用程序必须是唯一的吗?例如,假设我有一个名为“new”的按钮,然后在其他地方我要创建一个名为“new”的QShortcut。它会给Qt带来问题吗?

我知道正确命名对象(称为“新”的东西不是一个好名字),但我只是想知道我是否需要格外小心。

2 个答案:

答案 0 :(得分:14)

对象名称不必是唯一的。但是,在命名对象时,我至少要考虑两件事:

  • QObject :: findChild() - 一个可以按名称搜索QObject的函数。
  • 样式表。如果您按名称为窗口小部件指定样式表,它将应用于窗口小部件下面的层次结构中具有该名称的样式。

答案 1 :(得分:4)

需要考虑的其他事项:

  • 不需要名字的对象。如果您没有以任何有意义的方式使用这些名称,则无需进行设置。我通常不会将它们设置为像QTimer等一样的一次性对象。
  • 如果您正在使用设计器制作.ui文件(听起来不像你,但以防万一),uic倾向于吐出重复名称的警告。因此,如果您不希望看到这些警告,请将.ui文件中的名称保持唯一(设计者倾向于通过将_1,_2等附加到重复名称来强制执行此操作)。