Должны ли имена объектов Qt быть уникальными? - PullRequest
13 голосов
/ 05 августа 2011

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

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

Ответы [ 2 ]

15 голосов
/ 05 августа 2011

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

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

Другие вопросы, которые необходимо учитывать:

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