2011-08-05 5 views
11

전체 응용 프로그램에 대해 QObject::objectName 속성이 고유해야합니까? 예를 들어, "new"라는 어딘가에 버튼이 있다고 가정하고, QShortcut을 "new"라고도하는 다른 어딘가에 있다고 가정 해 봅시다. Qt에 문제가 생길 수 있습니까?Qt의 개체 이름이 고유해야합니까?

제대로 명명 된 개체 ("새로운"이라는 것은 좋은 이름이 아닙니다)에 대해 알고 있지만, 조심해야 할 것인지 아닌지 알고 싶습니다.

답변

13

개체 이름은 고유하지 않아도됩니다. 그러나 개체 이름을 지정할 때 고려해야 할 최소한 두 가지 사항이 있습니다.

  • QObject :: findChild() - QObject를 이름으로 검색 할 수있는 함수입니다.
  • 스타일 시트. 이름으로 위젯의 스타일 시트를 지정하면 해당 스타일을 가진 위젯 아래의 계층 구조에 해당 이름을 갖는 객체에 적용됩니다.
4

기타 고려할 사항 :

  • 객체는 이름을 필요로하지. 의미있는 방식으로 이름을 사용하지 않는다면 이름을 설정할 필요가 없습니다. 나는 보통 QTimer과 같은 일회용 객체를 위해 그들을 설정하지 않는다.
  • 디자이너를 사용하여 .ui 파일을 만들 경우 (사용자의 경우와 같지는 않지만 실제로 들릴 수도 있음), 사용자는 중복 된 이름에 대한 경고를 내뿜기 쉽습니다. 따라서 이러한 경고를보고 싶지 않다면 .ui 파일의 이름을 고유하게 유지하십시오 (디자이너는 중복 이름에 _1, _2 등을 추가하여이를 적용하는 경향이 있습니다).
+1

디자이너에서 중복 된 이름을 사용하는 방법이 있습니까? 그것은 나를 위해 유용합니다. –

+0

@ A.Danesh 중복 된 이름을 가진 객체를 갖는 것이 왜 유용 했습니까? –

+0

@ K3 --- rnc 정확하게 기억이 안나지만 이름으로 위젯에 대해 QApplication :: setStyleSheet (.)를 사용하여 스타일 시트를 설정했다고 생각합니다. 같은 이름의 모든 위젯에 동일한 스타일 시트가 있어야합니다. 이 작업은 다른 방법을 사용하여 수행 될 수 있지만. 동적 인 속성 이었지만,이 방법은 저 프로젝트에서 더 쉬웠습니다. –

관련 문제