Нужны ли уникальные имена объектов Qt?

Свойство QObject::objectName должно быть уникальным для всего приложения? Например, скажем, у меня есть кнопка где-то называемая "новая", затем где-то еще я собираюсь создать QShortcut, также называемый "новым". Это вызовет проблему для Qt?

Я знаю о правильных именах объектов (что-то называемое "новым" не является хорошим именем), но я просто хочу знать, нужно ли мне быть особенно осторожным или нет.

Ответ 1

Имена объектов не обязательно должны быть уникальными. Тем не менее, по крайней мере, две вещи, которые я могу придумать, когда вы назовете свои объекты:

  • QObject:: findChild() - функция, в которой вы можете искать QObjects по имени.
  • Таблицы стилей. Если вы когда-либо указали таблицу стилей для виджета по имени, она будет применяться к объектам в иерархии под виджетами с таким стилем, которые имеют это имя.

Ответ 2

Другие вещи, которые следует учитывать:

  • Объекты, не требующие имен. Если вы не используете имена каким-либо значимым образом, вам не нужно их устанавливать. Обычно я не устанавливаю их для одноразовых объектов, таких как QTimer и т.д.
  • Если вы используете конструктор для создания файла .ui(это не похоже на вас, но на всякий случай), uic обычно выплевывает предупреждения для дубликатов имен. Поэтому, если вы не хотите видеть эти предупреждения, сохраните имена в файле .ui уникальным (разработчик имеет тенденцию применять это, добавляя _1, _2 и т.д., Чтобы дублировать имена).